アプリ版:「スタンプのみでお礼する」機能のリリースについて

おせわになります。

1.エクセルで大きなシート上で簡単に列の数値部分の選択をする方法を教えてください。
Shift+ ↓ ↑ では隣り合った列以外の複数列の選択には使えないと思うのですが。。。

2.作成したグラフを素早く見つける方法をおしえてください。
行を上下に移動しながら、必要なグラフを手軽に作成しているのですが、表が10000行を超えると作成したグラフを探すのが手間になってきました。

都度別のシートにコピペしていけばよいのですが、その場合グラフに名前を付ける手間がかかるのでつい傾向確認して、次々複数のグラフを作成します。
で、後からグラフを並べて比較する時に手間がかかっています。
シート上のグラフであれば、特性曲線を選択すると列が着色するのでグラフ名は不要なので。

A 回答 (4件)

こんばんは。



VBAで「グラフ一覧」フォームを作るとか。。
無いものは作ろうという気まぐれ。
試す場合は、適当な新規ブックを作成して、VBE を開きます。

・Userform1を挿入
・ListBox1を配置(配置やサイズは適当で大丈夫)
・下記ソースをコピペ

以上で、現在の ActiveWorkbook 内のグラフを名前よセル位置をListBoxに表示しますので、クリックで移動します。
適当に作ったミニツールなので、グラフの削除があったり、ブックが切り替わったした場合は ListBox を更新しないといけないのですが、その辺まで考慮してません。

以下ソース

'■↓標準モジュール
Sub グラフ一覧表示()
  UserForm1.Show False
End Sub

’■↓Userform1

Option Explicit

Private Sub UserForm_Initialize()

  Me.Caption = "グラフ一覧 - クリックで移動 -"
  Me.Width = 180
  Me.Height = 240
  With ListBox1
    .SpecialEffect = fmSpecialEffectFlat
    .BorderStyle = fmBorderStyleNone
    .Top = 0
    .Left = 0
    .Width = Me.InsideWidth
    .Height = Me.InsideHeight
    .ColumnCount = 2
    .ColumnWidths = "50;120"
  End With
  
  Call EnumChartObject
  
End Sub

Private Sub ListBox1_Click()
  
  Dim chart_name As String
  Dim chart_pos As String
  
  With ListBox1
    chart_name = .Value
    chart_pos = .List(.ListIndex, 1)
  End With
  
  Range(chart_pos).Parent.Activate
  ActiveSheet.ChartObjects(chart_name).Select
  ActiveWindow.ScrollRow = Selection.TopLeftCell.Row

End Sub

Private Sub EnumChartObject()

  'ListBox1 Column 0: Name 1:Position

  Dim sh As Worksheet
  Dim cht As ChartObject
  Dim i  As Long     ' ListBox1 listitem index
  
  i = 0
  For Each sh In ActiveWorkbook.Worksheets
    For Each cht In sh.ChartObjects
      With ListBox1
        .AddItem cht.Name
        .List(i, 1) = sh.Name & "!" & cht.TopLeftCell.Address
      End With
      i = i + 1
    Next
  Next

End Sub
「エクセルの大きなシートでグラフを見つける」の回答画像4
    • good
    • 0
この回答へのお礼

早々に長いVBAをありがとうございます。

早速試してみてビックリ!
確かにご回答のように一覧表が出てきました。

但し、縦横に大きくはみ出してしまうような状況で、クリックしても該当なしや、違うシートまで探してくれるようで、グラフが見つかっても何の目的で作成したグラフかが分からない状況になっていました。

大変面白い発想でちゃんと動くこと感心しました。
但し、当方Use Formというのは初めて知ったレベルなのでこれを使いこなすには相当の時間が掛かりそうです。

また、何となく必要な(有意)なグラフが見えてきましたので最初からやり直します。
当方は知恵の無い分汗をかくべきと再認識しました。

お手数をお掛けしました。
次の機会があしましたら何卒よろしくお願いします。

お礼日時:2022/07/29 09:46

1はダメでしたか?


>エクセルで大きなシート上で簡単に列の数値部分の選択をする方法を教えてください。
説明が悪かったかも・・

探す列を選択 (隣り合った列以外の複数列OK)

リボン(ホーム)検索と選択を押下 条件を選択してジャンプ
定数 と 数値 のみがチェックされていう状態でOK
    • good
    • 0
この回答へのお礼

ご回答の意図が理解できないレベルです。

やりたいことは、大きな表でアレコレ思いつくままにグラフを作成した後で、シート上に一杯あるグラフを、あれとこれを見比べて傾向を確認したい。

具体的には、
5月より2つの部屋の温度湿度を5分おきに24時間測定したデータがあり、この温度の傾向や2ヶ所の環境の差異を統計的に傾向を把握したいのですが、まずはどんな感じかアレコレ(折れ線や箱ひげ図、時間帯、曜日、エアコンの設定温度、等々)要因毎にグラフを作成しています。

流石に40枚以上になってくると何が何やら、どれとどれを比較(対)なのか怪しくなって、探すのが面倒になったら、とりあえず作成して確認する状況になってきたので何とかならないかとHELPしました。
正直ダメ元で何かアイディアあれば教えてください。
エクセルのスキルが無いので正直探す方が効率的のケースもあると思っています。

お礼日時:2022/07/29 09:01

関係ない事ですが・・


確かVBAとかも組まれますよね。。取敢えず見るだけならば、
都度グラフを作るのでなく、予めグラフをいくつか作成しておいて データを流し込むやり方にすれば グラフを沢山作らなくて済むような気がします。比較も出来るかと・・

データをどのように作られるのか分かりませんけれど
例えば、範囲を選択してマクロショートカットキーで実行
(右クリックに登録しても良いかな) グラフ1のデータ範囲、系列名、タイトルなどを変更・・みたいな感じ・・・
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

なるほど!のご提案ですが、このVBAを作成出来るレベルには程遠く。
マクロの記録で作成されたコードやNETで教えてもらったコードをベースに少しいじったり、Callコマンドで繋ぐとかしかできない悲しいレベルです。

お礼日時:2022/07/29 08:46

こんにちは


解釈が違っていたらごめんね
1 Ctrl+g Alt+s 定数Alt+o 数値のみチェックAlt??

2 Alt+h fd p 選択と表示を使うとか・・
    • good
    • 0
この回答へのお礼

早々のご回答ありがとうございます。

2のご回答がほぼ正解なのですが、何せ表が大きくてどこにグラフが有るのかを結局探すことになってしまうようです。
選択したグラフの要素(列)はハイライトされるのでこの列のグラフはどこかにあることはわかるのですが。。。

ちなみに、これで分かったのは、アチコチに40枚以上のグラフが有る事です。(恐らく同じグラフも存在すると思います)

やはり、逐一グラフタイトルを付けて、別シートにコピペしていくのが見やすくて速いか?と思ってきました。

お礼日時:2022/07/28 16:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!