- 締切済み
マクロのセルの範囲指定
お世話になります。マクロ初心者です。エクセルの業務でマクロを作成しようとしているのですが、マクロ実行で、セルの範囲が指定される方法はありますか?例えば シート名 開始 終了 Sheet1 A1 D10 を入力して、ボタンを押したらA1からD10までのセルが選択されることです。説明不足ですみません。宜しくお願いします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- avanzato
- ベストアンサー率54% (52/95)
こんにちは。 基本的な機能のみのコードです。 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/17069)
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)
>を入力して、ボタンを押したら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
- NOBNNN
- ベストアンサー率50% (93/186)
簡単です。 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 のツールバー 「デザインモード」のボタンをクリック デザインモードを終了します。 先ほど配置した コマンドボタンをクリックしてください。 記録したマクロが実行されます。
お礼
Call Macro1()
補足
お礼の一覧に間違えて入力してしまいました。本当にすみませんでした。ご親切にありがとうございました。
- myRange
- ベストアンサー率71% (339/472)
A1 に シート名 B1 に 開始 C1 に 終了 -------------------------------- Sub Test() Sheets(Range("A1").Value).Range(Range("B1").Value, Range("C1").Value).Select End Sub -------------------------------- 以上です。
お礼
ありがとうございました。勉強になりました。