
こんばんは.
エクセルを使って備品の管理システムを構築したいと考えております.
マクロを使います.
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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでブック内の倍率がバ...
-
EXCELで複数のシートを一度に「...
-
【ExcelVBA】マクロの入ったシ...
-
ハイパーリンクでジャンプした...
-
特定のシートのみ再計算させな...
-
EXCELの図形(テキストボックス)...
-
エクセルのシー名を二段表示に...
-
EXCELで存在しないシート...
-
エクセル、特定のシートにパス...
-
EXCELの「シートの見出し」のフ...
-
Wordで差し込み印刷時に表示す...
-
エクセルで複数のシートに画像...
-
SUMIF関数【複数のシート...
-
エクセルのシート連番の振り直し
-
エクセルでリンク貼り付けした...
-
(エクセル)Indirect関数で、ハ...
-
エクセルのファイルサイズが急...
-
【Excel VBA】データ貼り付け先...
-
エクセル、別のシートの表をポ...
-
複数シートの選択解除の方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
エクセルでブック内の倍率がバ...
-
【ExcelVBA】マクロの入ったシ...
-
ハイパーリンクでジャンプした...
-
特定のシートのみ再計算させな...
-
EXCELの図形(テキストボックス)...
-
エクセルで複数のシートに画像...
-
エクセルのファイルサイズが急...
-
エクセル、特定のシートにパス...
-
Accessのテーブルを既存のExcel...
-
エクセルのシー名を二段表示に...
-
エクセルの2つのシートを並び...
-
EXCELで存在しないシート...
-
エクセルの複数シートでのリン...
-
エクセルで、シートの名前を変...
-
EXCELの「シートの見出し」のフ...
-
Wordで差し込み印刷時に表示す...
-
ワークシートそのものの色を変...
-
エクセルを開くとメニューバー...
-
エクセル、別のシートの表をポ...
おすすめ情報