こんばんは.
エクセルを使って備品の管理システムを構築したいと考えております.
マクロを使います.
VBAは初心者です.
・備品を20種類ほどに分類し,シートも同様に20作りました.
・ウィンドウを2つに分割し,上下に並べています.
・上ウィンドウの最初のシート(シート名:備品一覧)のB2セルにリストボックスを設け,そのリストで20種の備品の中から一つを選択できるようにしています.
・リストボックスの側にマクロ対応のボタンを設置しております
やりたいこととしては・・・
『上ウィンドウのリストボックスで備品を選択し,ボタンをクリックすることによって,下ウィンドウでその選択した備品名のシートに移動する』
です.
私が組んでみたマクロは下記です.
----------------
Sub 備品を選択
Dim sheetname As String
'リストボックスからシート名を取得する
sheetname = Range("B2").Value
'下ウィンドウをアクティブにしてシートを選択する
Windows(2).Activate
Worksheets("sheetname").Select
End Sub
------------------
エラーは,『Worksheets("sheetname").Select』のところで
【実行値エラー'9' インデックスが有効範囲にありません.】
参考書やグーグルで調べてもわかりませんでした.
ご教授いただければ幸いです.
よろしくお願い致します.
No.5
- 回答日時:
すでに回答は出ていますが・・・
>エラーは,『Worksheets("sheetname").Select』のところで
「"」で「sheetname」を囲っているのが原因です。
変数の場合は、「"」を付けません。
Worksheets("sheetname").Select
上記は「sheetname」という名前のシートを選択する事になります。
Worksheets(sheetname).Select
上記は、Range("B2").Valueで取得したセルの文字のシートを選択する事になります。
No.4
- 回答日時:
基本的なことですが
sheetnameという名前のシートをセレクト
Worksheets("sheetname").Select
sheetnameという変数に入っているシートをセレクト
Worksheets(sheetname).Select
という違いがあります。
この回答への補足
>Dred様
ご回答ありがとうございます.
シート名には””が必要で,変数には””は必要ないんですね.
これからもっと勉強していきたいと思います.
ありがとうございました.
No.3
- 回答日時:
直接の回答ではありませんが、シート一覧を表示そしてシートを選択するとそのシートに移動するツールバーをマクロで作成するのはいかがでしょうか?詳しくは↓をご覧ください。
サンプルファイルもあります。エクセル技道場-マクロでツールバー作成
http://www2.odn.ne.jp/excel/waza/toolbar.html#SE …
↓は↑からの抜粋です。
============================================================
【エクセル技道場】No.005で、見出しスクロールボタンを右クリックでシート一覧が表示され、シート名をクリックすると当該シートがアクティブになることをご紹介いたしました。
ただし、15枚以上のシートがある場合には、見出しスクロールボタンを右クリックすると[シートの選択...]というメニューが出てくるので、それをクリックして[シートの選択]ダイアログボックスでアクティブにしたいシート名をクリックして、エンターを押す必要があります。
これが結構面倒くさいという人がいるので、シート一覧を表示するツールバーを作成するマクロを作成しました。
============================================================
参考URL:http://www2.odn.ne.jp/excel/waza/toolbar.html#SE …
この回答への補足
>izmlz様
ご回答ありがとうございます.
なるほど,そういった方法もあるのですね.
エクセル技道場は大変参考になりますね!
今後利用させていただきます.
どうもありがとうございました.
No.2
- 回答日時:
何か難しいことをやっているようで良くわからんが
Sheet1のF1:G6に
E列 F列
工事用品Sheet2
ハウス用品 Sheet2
インテリア Sheet2
基礎用品 Sheet3
塗装用品 Sheet4
屋根用品 Sheet4
こういう対応表が要るのでしょう。質問には書いてないようだが。
Sheet1にコントロールツールボックスのリストボックスを1つ張り付け
プロパティで
Boundcolumn 2
ColumnCount 2
Linkedcell A1
listFillRange E1:F6
設定。
デザインモードでリストボックスをダブルクリック
Private Sub ListBox1_Click()ーEndSubが出てくるから
Private Sub ListBox1_Click()
sn = Range("a1")
Worksheets(sn).Select
End Sub
を作る。
デザインモードを脱する。
シートで「塗装用品」をクリックすると「Sheet4」のシートが
開く
===
参考になれば足しにしてください。
VBやフォームの上にコントロールを載せるのとちょっと違うから注意。
この回答への補足
>imogasi様
ご回答ありがとうございます.
私の質問の仕方が不十分でしたね.
大変申し訳ございませんでした.
imogasi様のご回答は後学のため参考にさせていただきます.
ありがとうございました.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- その他(パソコン・スマホ・電化製品) エクセル初心者です。 仕事でエクセルを使っていて、普段は素人でもできる簡単な関数を使ったことがある程 1 2022/05/25 11:17
- Excel(エクセル) エクセルのマクロが上手く動きません 4 2022/07/14 13:25
- Visual Basic(VBA) ユーザーフォームの表示を追加したい 2 2023/03/26 23:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/02/07 09:58
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
【Excel VBA】データ貼り付け先のシート名選択
Excel(エクセル)
-
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
エクセル(VBA)でリストボックス等を使用した印刷方法
Excel(エクセル)
-
-
4
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
別のシートから値を取得するとき
Visual Basic(VBA)
-
7
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
8
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
9
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
10
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
11
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
12
ユーザーフォームのテキストボックスに前回入力した値を表示する Excel
Visual Basic(VBA)
-
13
Excelにて、ユーザーフォームで、日付けの範囲を指定し、検索しデーターを抽出し 別シートへ転記した
Excel(エクセル)
-
14
エクセルVBAリストボックスに表示された検索結果をクリックして、該当するセルをアクティブセルにしたい
Excel(エクセル)
-
15
特定のシート名のシートのみ除外して、それ以外のシート名のシートをすべて集約する方法(VBA)
Excel(エクセル)
-
16
エクセルVBA 4行飛ばしで転記するループ処理
Excel(エクセル)
-
17
VBA リストボックス内の値を複数選択し別シートに転記するには
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
特定のシートのみ再計算させな...
-
エクセルの2つのシートを並び...
-
エクセルでブック内の倍率がバ...
-
ワークシートそのものの色を変...
-
【ExcelVBA】マクロの入ったシ...
-
エクセルで複数のシートに画像...
-
ActiveSheet.Protect UserInter...
-
Excelで条件に一致したものだけ...
-
エクセルで、シートの名前を変...
-
エクセルのシー名を二段表示に...
-
【Excel VBA】データ貼り付け先...
-
EXCELで存在しないシート...
-
Wordで差し込み印刷時に表示す...
-
特定の複数のシートに同じ処理...
-
エクセルでリンク貼り付けした...
-
Excelのオートフィルター等のリ...
-
DATE関数 4月31日などのあ...
-
パワーポイントでスライドマス...
-
エクセルのシート連番の振り直し
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
エクセルで複数のシートに画像...
-
エクセルでブック内の倍率がバ...
-
特定のシートのみ再計算させな...
-
【ExcelVBA】マクロの入ったシ...
-
ワークシートそのものの色を変...
-
エクセルの2つのシートを並び...
-
EXCELの図形(テキストボックス)...
-
ハイパーリンクでジャンプした...
-
Wordで差し込み印刷時に表示す...
-
エクセルで、シートの名前を変...
-
エクセル、特定のシートにパス...
-
エクセルのシー名を二段表示に...
-
Accessのテーブルを既存のExcel...
-
確定申告用の医療費集計フォー...
-
エクセルのシート連番の振り直し
-
【Excel】エクセルの1ファイル...
-
エクセルの複数シートでのリン...
-
【Excel VBA】データ貼り付け先...
-
エクセルでリンク貼り付けした...
おすすめ情報