• 締切済み

マクロのセルの範囲指定

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

みんなの回答

  • avanzato
  • ベストアンサー率54% (52/95)
回答No.5

こんにちは。 基本的な機能のみのコードです。 Sub Sample()   Dim SheetNm As String, Scell As String, Ecell As String   SheetNm = InputBox("シート名")   Scell = InputBox("開始")   Ecell = InputBox("終了")   Sheets(SheetNm).Select   Range(Scell & ":" & Ecell).Select End Sub

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

VBAの基本のことです。 ブックーシートーRange(セル範囲)-Select を並べて書くだけで良い。 ブックはActiveWorkbookが仮定されるので省略可能。 シートはSSheets("シート名文字列") RasngeはRange("セル範囲文字列") シート名文字列,セル範囲文字列は変数に入っていても良い。 ーーー 難しいことを覚えるより下記が参考になると思う。 Sub test01() Dim rng As Range sn = InputBox("シート名") Sheets(sn).Activate Set rng = Application.InputBox(prompt:="範囲", Type:=8) rng.Select End Sub ーー Application.InputBoxではマウスで範囲指定できる。ここがメリット。 Ctrlキーを押しつつ、飛び飛びのセル範囲も指定出来る。 入力してシート名を確定して、そのシートを、範囲を聞く前にアクチベイトする。 rngではシートの特定(指定したシート)も含めて範囲が確定する。だからSheets(sn).rng.Select とはしない。 === >ボタンを押したらA1からD10までのセルが選択されることです なら ボタンとは何?ボタンは必要ない。 範囲が指定の都度変動するかどうか、質問に帷幄べきだ。1回限りなら Sub test02() Sheets("Sheet1").Activate Sheets("Sheet1").Range("A1:D10").Select End Sub A1:D10が変数にあるなら Sub test03() Sheets("Sheet1").Select rng = "A1:D10" Range(rng).Select End Sub が参考になるだろう。 参考 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_cell.html http://oshiete1.goo.ne.jp/qa3578579.html

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.3

>を入力して、ボタンを押したらA1からD10までのセルが選択    A    B  C 1 シート名 開始 終了 2 Sheet1  A1  D10 この様な形で入力されているなら Sub Test()   Dim シート名 As String   Dim 開始セル As String   Dim 終了セル As String   シート名 = Range("A2").Value   開始セル = Range("B2").Value   終了セル = Range("C2").Value   Application.Goto Reference:=Worksheets(シート名).Range(開始セル & ":" & 終了セル), Scroll:=True End Sub

limilan092
質問者

お礼

ありがとうございました。勉強になりました。

  • NOBNNN
  • ベストアンサー率50% (93/186)
回答No.2

簡単です。 Excel を起動し、メニューバーにて以下の操作 ツール/マクロ/新しいマクロの記録 マクロの記録が開始されます。 後はシート→ sheet1 をクリック セル A1~D10 をドラッグ マクロの記録のボタン→ 停止を押すだけ これでマクロが記録されます 次にボタンを配置します。 メニューバーにVisual basic のツールバーを表示させます。 表示/ツールバー を開き「Visual basic」にチェックしてください。 Visual basic のツールバー 「デザインモード」のボタンをクリック Visual basic のツールバー より「コントロールツールボックス」 をクリック  Excel の画面上に「コントロールツールボックス」が表示されます。 その中から「コマンドボタン」を選択(クリック)を シート上の 適当な場所にマウス左クリックしたままドラッグ 手を離すとボタンが配置されます。 配置したボタンをダブルクリックすると VBAの画面が表示されます。 これは Shhet1 のVBAに配置されています。 ______________ Private Sub CommandButton1_Click() End Sub _______________________________ ここに以下の記録したマクロを呼び出す記述を追加します。 先ほどの記録したマクロは 標準モジュール/Module1 という場所に記録されています。 _____________________________________ Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2009/12/17 ユーザー名 : NOBU ' ' Range("A1:D10").Select End Sub ___________________________________________________ で話を元に戻して コマンドボタンの処理に以下のとおり記述 ____________________________________________________________ ______________ Private Sub CommandButton1_Click() Call Macro1() End Sub _______________________________ これでVBAの側は設定できました。 VBAの画面は閉じてください。 excel のシート1に戻って  Visual basic のツールバー 「デザインモード」のボタンをクリック デザインモードを終了します。 先ほど配置した コマンドボタンをクリックしてください。 記録したマクロが実行されます。

limilan092
質問者

お礼

Call Macro1()

limilan092
質問者

補足

お礼の一覧に間違えて入力してしまいました。本当にすみませんでした。ご親切にありがとうございました。

  • myRange
  • ベストアンサー率71% (339/472)
回答No.1

A1 に シート名 B1 に 開始 C1 に 終了 -------------------------------- Sub Test()  Sheets(Range("A1").Value).Range(Range("B1").Value, Range("C1").Value).Select End Sub -------------------------------- 以上です。  

関連するQ&A

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

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

  • エクセルのマクロで範囲指定をセルに番号を入れて、範囲指定したセルの字の

    エクセルのマクロで範囲指定をセルに番号を入れて、範囲指定したセルの字の色を白にして消したいのですが、番号を入れるマクロがわかりません。マクロに記録でA2からB12までのセル内の字の色を白 にする方法は Sub 字を消す() ' ' 字を消す Macro ' ' Range("A2:B11").Select With Selection.Font .ThemeColor = xlThemeColorDark1 .TintAndShade = 0 End With End SubでできるのですがD3に開始番号、E3に終了番号を指定する方法がわかりません。ご教授お願いします

  • エクセルのマクロのセルの選択について

    エクセルのマクロについて教えてください。 シート上にボタンを作ります。 そのボタンをクリックする前に適当にセルを範囲指定(アクティブ)に しておきます。 セルをアクティブにしたその状態で、ボタンをクリックすると、どこから どこまで範囲指定しているのかわかるようなマクロは作れるでしょうか? (1)たとえばB3からD10まで範囲指定しているときは、B3とD10のセルの場所  をひっぱってくるような... (2)あるいは  cell(?1,?2) ←B3とD10の ?1 と ?2 の値を求めるような... できれば(1)のようなB3とD10のセルの場所が直接わかるようなマクロが現在考えています処理にあっているので、そのほうがいいと思っているのですが.. お忙しいところ申し訳ありませんが宜しくお願い致します。

  • Excelのマクロを使わず、数式内のセル指定範囲をダイナミックにすることはできますか?

    Excelで数式内に範囲を指定するときに、先頭と最後尾のセル番地を指定しますが、他のセルで指定した数値を指定したセル番地の行数に指定することはできますか? 例えば、以下のようなサンプルにおいて A B C D 1 10 2 4 2 32 3 42 4 20 5 17 6 =sum(A2:A4) C1番地に2、D1番地に4を入力すると自動的に A6番地でA2~A4の範囲を指定して足し算してくれるようなことをマクロを使わずに実現できるでしょうか?

  • エクセルのマクロでセル選択するには

    初心者です! エクセルのSheet1に30箇所のセルをマクロで選択したいのですが、 たまに選択するセルが変わります。 そこで、Sheet2のA1から下へSheet1の選択する位置を「B2」「C5」「D10」・・・としてマクロで一発で30箇所のセルを選択する方法を教えてください Sheet2のA1から下へ入力するセル位置はその都度変化します。 変化したときにそのマクロを実行すると選択できるといいのですが!! よろしくお願いします。

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

    エクセルのマクロで、うまくセルの範囲を指定できません。 例えば、 Range(Cells(5.6), Cells(8, 7)) = "AAA" と、指定した時は、F5:G8のセルにAAAという文字を代入するつもりで書いています。 ところが、マクロを実行すると、F1:G8まで、AAAの文字が代入されます。 どうしてでしょうか。 宜しくお願い致します。

  • 指定の範囲を印刷するマクロ

    こんにちは、エクセル2010を使っています。 ちょっとやってみたい事があるので、マクロに詳しい方、教えて頂けませんでしょうか。 シートにボタンを作りました、それでそのボタンを押すと印刷画面を開きたいのですが、同時に範囲を選択した状態で印刷画面を開きたいのです。 選択する範囲は A1~Y41です。 シートのタブからコードを入力するとして、そのコードを教えて頂けませんか? それでは詳しい方よろしくお願いいたします。

  • 《エクセル》 マクロ-セルの範囲指定の式

    いつもお世話になります。 2つお聞きしたいのですが、エクセルで、 ・「A列のデータのあるセル範囲のみを指定する」と、 ・「A列のデータのあるセル範囲の、隣(B列)のセルを指定する」 というマクロの式はどのように書けば良いのでしょうか。

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

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

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

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

専門家に質問してみよう