• ベストアンサー

Excel2000:マクロのセル範囲の変更方法について

マクロの自動記録でセルを範囲指定しグラフを作成したので、VisualBasicEditorで開くと、実行するセル範囲が固定されています。範囲を固定しないでマクロを実行したときに次に選択されている範囲に対して実行できるようにする方法を教えてください。VBA初心者になります。どうぞよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

質問の意味を捉えていればいいんですが・・・チョッと不安です。 Sheet1のA1:B10で、A列を横軸、B列を縦軸、1行目を項目名として棒グラフの作成を記録しました。 グラフ自体は単なる例です。 'マクロの記録 Sub Macro1()   Charts.Add   ActiveChart.ChartType = xlColumnClustered   ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A1:B10"), PlotBy:=xlColumns   ActiveChart.SeriesCollection(1).Delete   ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"   With ActiveChart     .HasTitle = True     .ChartTitle.Characters.Text = "Y"     .Axes(xlCategory, xlPrimary).HasTitle = False     .Axes(xlValue, xlPrimary).HasTitle = False   End With End Sub 次のように変更してみました。 グラフを書く範囲を選択してこのマクロを実行します。 例えば、Sheet1のA1:B5にするとこの範囲でグラフを書きます。 '選択範囲のグラフを作成するよう変更 Sub chgMacro1()   Dim grpAdr As String     '<追加>選択範囲のアドレス   grpAdr = Selection.Address  '<追加>Selectionが選択したセル範囲になる   Charts.Add   ActiveChart.ChartType = xlColumnClustered   '<次の行を変更>(Rangeに座標を代入)   ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range(grpAdr), PlotBy:=xlColumns   ActiveChart.SeriesCollection(1).Delete   ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"   With ActiveChart     .HasTitle = True     .ChartTitle.Characters.Text = "Y"     .Axes(xlCategory, xlPrimary).HasTitle = False     .Axes(xlValue, xlPrimary).HasTitle = False   End With End Sub

helphelphelp
質問者

お礼

nishi6さん、ありがとうございました! まさに希望していた回答そのものでした。 <追加>部分の記述と、SetSourceData Source:=Sheets("Sheet1").Range の後の(grpAdr)を書き変えて成功しました。 本当にありがとうございました。

関連するQ&A

  • マクロのセルの範囲指定

    お世話になります。マクロ初心者です。エクセルの業務でマクロを作成しようとしているのですが、マクロ実行で、セルの範囲が指定される方法はありますか?例えば シート名  開始  終了  Sheet1   A1  D10 を入力して、ボタンを押したらA1からD10までのセルが選択されることです。説明不足ですみません。宜しくお願いします。

  • マクロが実行されるセル範囲の変更を簡素化したい

    excel 2016を使っています。 例えば、ボタンを押すと指定したセルA1~A10までに入力されている数値を昇順に並べ替えるマクロがあるとします。 この数値が入力されているセルA1~A10の範囲をドラックして、D1~D10の位置に移動すると、マクロが実行される範囲を新たにD1~D10に指定しないとならないのですが、マクロが実行される範囲をA1~A10の範囲に固定して、別の場所に移動してもマクロを修正しなくても良い方法はありますか。

  • マクロを使い選択範囲を次々と変えて並べ替えたい

    マクロ作成は 範囲選択 A4~G12 マクロ記録開始 並べ替え E列 降順 マクロ記録終了 でマクロを作成し 次に範囲選択 A14~G22でこのマクロを実行すると範囲選択が前と同じA4~G12が並べ替えられてしまいます。 マクロの中を見ると範囲選択 A4~G12が書かれてしまっています。 次のように、選択範囲を次々と変えて並べ替えるマクロを作りたいのですがお教え願います。 1. 範囲選択 A4~G12を選択 マクロ実行で選択範囲をE列の値で降順並べ替える 2. 範囲選択 A14~G22を選択 マクロ実行で選択範囲をE列の値で降順並べ替える 3. 範囲選択 A28~G32を選択 マクロ実行で選択範囲をE列の値で降順並べ替える

  • エクセル/マクロ/セルの選択について(初心者です)

    最近マクロ機能を使い始めた初心者です。 マクロの記録を使い、ちょっとだけVBEで触っています。 以下のような場合、なんと記述すればよいでしょうか? 詳しい方にはとても簡単だと思われ、お恥ずかしいですが、 教えていただけましたら幸いです。 【実現したい内容】 あるセル範囲を指定している時に、実行すると、 指定していた範囲の行の、A列のみが選択される ※例えばB1:B3、またはC1:C3、またはD1:E3 のをセル範囲を選択している時に、マクロを実行すると いずれの場合もA1:A3を選択する。 表現が分かりにくいでしょうか…?

  • Excelのマクロ 指定した範囲のセルの処理方法

    Excel2000のマクロを使って以下のマクロを作っています。 ■指定した範囲のセルの値が80以上だったら色をつける そこで質問なのですが、 range("","").select でセルの範囲を指定して、そこから選択したセルだけを対象に処理を実行するにはどうしたらいいのか方法がわかりません。どうすればいいでしょうか? どなたかご解答よろしくお願いします。

  • Excelマクロの変化するデータ範囲の記述の方法

    初心者です。データ並べ替え(昇順)を自動実行するマクロを作成したいのですが、データ範囲が増減しても正しく実行できるようにするにはどうすればよいでしょうか。マクロの自動記録で作成しましたが、visual basic editorで範囲の修正する箇所を教えてください。

  • マクロでのセルの選択範囲について

    マクロのセル範囲の指定でうまくできなくて困っています。 マクロでB3:B5を選択するように、コードを次のように Range(Cells(3.2), Cells(5, 2)).Select 書くと、B1:C5を選択します。 試しに、 Cells(3, 2).Select と書くと、B3を選択します。 次に、マクロを Cells(5, 2).Select と書くと、B5を選択します。 どうしてでしょうか。 宜しくお願い致します。

  • エクセルでのマクロ作成

    エクセルで作成したボタンをクリックすると以下の事を行うマクロを作りたいと思っています。 (1)最初に貼り付けたいセルの範囲をドラッグで選択する。(手動) (2)マクロを登録したボタンを押す。 (3)マクロ内で指定したセル(たとえば $A$1)をコピーして、(2)でボタンを押してマクロを実行する前に(1)で選択したセルの範囲に貼り付ける。 VBAが分からないので難儀しています。 宜しくお願いします。

  • 作業したいセルにすぐカーソルをもっていく方法

    こんばんは。 セルの移動について教えてください。 1.Excelで自分が作業しているセルから、指定したセルに すぐカーソルがいくような何かよい方法はありませんか? たとえば、C3のセルからA1にもどりたければCtrl+Homeで 戻ることはわかったのですが。。。 C3からすぐにP9のセルにダイレクトでカーソルをうごかしたい、 といったときです。 2.VBA初心者のため自動マクロでプログラムを作成し、   それをいじって作業しています。   文字列がはいってる対象のセルの範囲をすべて削除したく   対象の最初のセルを選択し、Ctrl+Shift+↓+→   でやってみたところ、実は途中に空白セルがあり、   すべての文字列がはいっている範囲が選択できませんでした。   今は手でセルの範囲を指定していますが、セルの範囲が広がる   可能性もあり、できればCtrl+Shift+↓+→のような   方法でセル範囲を指定したいのです。   たとえば、A3からD20までの範囲を選択したいとします。   A行には空白行があります。そのためA3を選択後   上記Ctrl+Shift+↓+→をおこなうと、Dの途中の列で   選択が終わってしまいます。      ですが、B列はすべて空白ではない列となっています。   その空白ではないこのB列のまず行を数えて、   それからA列からD列までの上記で数えた行分選択   するといった方法でプログラムすれば、セルの範囲   が広がったあとでも対応するのでしょうか? わかりづらくて申し訳ありません。 VBAは本当に自動マクロをいじるくらいしかできないので、 超初心者にわかりやすく教えていただけたら幸いです。 よろしくお願いいたします。

  • マクロのセルの範囲指定

    こんにちは。マクロ初心者です。 今エクセルの業務でマクロを作成しようとしているのですが マクロ実行時にセルの範囲でマウスでセルを選んだところから マクロを実行させたいのですが(マクロを実行する際毎回場所が変わるので)そのようなセル指定方法はあったりしますでしょうか? 項目に関しては(BW4~BX4)は固定です。 関数に関しては(BW10~BW10)は月によっては BW20になったりと行が変わります。 Range("BW10").Selectのカッコ内を毎回変更すればいいのですが 項目が20以上ある為面倒です。 なにか良い方法がありますでしょうか? よろしくお願いいたします。 Range("BW4").Select ActiveCell.FormulaR1C1 = "商談明細NO桁数" Range("BX4").Select ActiveCell.FormulaR1C1 = "商談明細NO桁数2" Range("BW10").Select ActiveCell.FormulaR1C1 = "=CONCATENATE(0,RC[-70])" Range("BX10").Select   ActiveCell.FormulaR1C1 = "=RIGHTB(RC[-1],2)"

専門家に質問してみよう