Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9541 / 13644 ツリー ←次へ | 前へ→

【26136】ワークシートの選択 tk 05/6/24(金) 12:39 質問[未読]
【26137】Re:ワークシートの選択 Jaka 05/6/24(金) 12:51 回答[未読]
【26781】Re:ワークシートの選択 やまっち 05/7/18(月) 0:54 質問[未読]
【26784】Re:ワークシートの選択 かみちゃん 05/7/18(月) 7:21 回答[未読]
【26797】Re:ワークシートの選択 [名前なし] 05/7/18(月) 16:08 発言[未読]
【26802】Re:ワークシートの選択 やまっち 05/7/18(月) 17:44 お礼[未読]

【26136】ワークシートの選択
質問  tk  - 05/6/24(金) 12:39 -

引用なし
パスワード
   ワークシートの選択時に、シートを変数で指定する方法はありますでしょうか?
例えば
worksheet("シート名").select
で、この”シート名”を変数で指定したいのですが・・・。
よろしくお願いします

【26137】Re:ワークシートの選択
回答  Jaka  - 05/6/24(金) 12:51 -

引用なし
パスワード
   こんにちは。
たいてい文字列の所は、変数名に置き換えるだけで大丈夫です。

変数 = "Sheet3"
Worksheets(変数).・・・・

【26781】Re:ワークシートの選択
質問  やまっち E-MAIL  - 05/7/18(月) 0:54 -

引用なし
パスワード
   こんにちは。お世話になります。

しかし、「インデックスが有効範囲にありません」と出てエラーになります。

Sheets(ListYear).Activate

listyearはアクティブセルの値を取得した変数で、バリアント型です。
アクティブセルには計算式が入っており、別のセルの日付データの「年」のみ
返しています。
具体的には「1971」のような数値が表示されており、同名の「1971」というシートを選択したいのです。

うあーなぜだー

【26784】Re:ワークシートの選択
回答  かみちゃん  - 05/7/18(月) 7:21 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>しかし、「インデックスが有効範囲にありません」と出てエラーになります。
>
>Sheets(ListYear).Activate
>
>listyearはアクティブセルの値を取得した変数で、バリアント型です。

Sheets(Index).Activate
Indeにxは、シートの名前またはインデックス番号を指定する必要があります。
今回の場合、1971という名前なのでしょうけど、1971が数値なので、インデックス
番号として認識してしまっていると思います。
そこで、
Sheets(Format(ListYear,"@")).Activate
と文字列に変換すると、できます。

もっとも、ListYearが空白とかであれば、だめですけど。

P.S. tkさんと、やまっちさんは同じ方ですか?

【26797】Re:ワークシートの選択
発言  [名前なし]  - 05/7/18(月) 16:08 -

引用なし
パスワード
   >Sheets(Format(ListYear,"@")).Activate
>と文字列に変換すると、できます。

Sheets(CStr(ListYear)).Activate

というのでもできます。参考までに。

【26802】Re:ワークシートの選択
お礼  やまっち E-MAIL  - 05/7/18(月) 17:44 -

引用なし
パスワード
   みなさま

有難うございました。納得です。
かみちゃん様
別の人です。
自分はVBA初心者です。
PC-98の日本語BASICを子供の頃使って遊んだクチなので、
あまり抵抗はないのですが、それでも悩む・・・

ともかく、早速やってみます。
有難うございました〜!

9541 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free