Excel VBA質問箱 IV

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

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


7621 / 13646 ツリー ←次へ | 前へ→

【37869】シートを非表示にした状態でシートを選択 16茶 06/5/22(月) 11:07 質問[未読]
【37872】Re:シートを非表示にした状態でシートを選択 Jaka 06/5/22(月) 11:52 発言[未読]
【37880】Re:シートを非表示にした状態でシートを選択 16茶 06/5/22(月) 12:54 お礼[未読]
【37882】Re:シートを非表示にした状態でシートを... わさび 06/5/22(月) 13:26 発言[未読]
【37885】Re:シートを非表示にした状態でシートを... 16茶 06/5/22(月) 15:42 お礼[未読]
【37915】Re:シートを非表示にした状態でシートを... わさび 06/5/23(火) 12:50 発言[未読]
【37916】Re:シートを非表示にした状態でシートを... 16茶 06/5/23(火) 13:04 お礼[未読]

【37869】シートを非表示にした状態でシートを選択
質問  16茶  - 06/5/22(月) 11:07 -

引用なし
パスワード
   先日は大変お世話になりました。
自分でも皆さんのおかげでスキルが上がって大変嬉しく思っています。
何度も申し訳ありませんが、今回もよろしくお願いします。

今回は、シートを非表示にした状態で、シートを選択すると言うことですが、
ブックの構成は

目次−−印刷用表紙
   |−シート1
   |−シート2
   |−シート3

という構成になっています。

私が作ってみたマクロは、

If Range("s2") = 5 Then Sheets(5).Select
If Range("s2") = 6 Then Sheets(6).Select
If Range("s2") = 7 Then Sheets(7).Select

このようになります。
目次s2の中を印刷用表紙で参照していますのでハイパーリンクは付けられません。
そこで上のように作ってみたのですが、シートを非表示にすると
「worksheetクラスのselectメソッドが失敗しました。」と出ます。
試行錯誤してみたのですが、どうもうまくいきません。

お知恵をお貸しください m(_ _)m

【37872】Re:シートを非表示にした状態でシートを...
発言  Jaka  - 06/5/22(月) 11:52 -

引用なし
パスワード
   ▼16茶 さん:
>そこで上のように作ってみたのですが、シートを非表示にすると
>「worksheetクラスのselectメソッドが失敗しました。」と出ます。
>試行錯誤してみたのですが、どうもうまくいきません。
>お知恵をお貸しください m(_ _)m
知恵うんぬんというより、出来ない物は出来ません。
なぜ、非表示にする必要があるのか、わざわざ選択しなくてはならないのかを、考えた方がいいと思いますけど。

【37880】Re:シートを非表示にした状態でシートを...
お礼  16茶  - 06/5/22(月) 12:54 -

引用なし
パスワード
   ▼Jaka さん:
>知恵うんぬんというより、出来ない物は出来ません。
>なぜ、非表示にする必要があるのか、わざわざ選択しなくてはならないのかを、考えた方がいいと思いますけど。

そうなんですか、出来ないんですね。
この方法は諦めることにします。
どうもありがとうございました。m(_ _)m

【37882】Re:シートを非表示にした状態でシートを...
発言  わさび  - 06/5/22(月) 13:26 -

引用なし
パスワード
   >そこで上のように作ってみたのですが、シートを非表示にすると
>「worksheetクラスのselectメソッドが失敗しました。」と出ます。
>試行錯誤してみたのですが、どうもうまくいきません。

非表示になっているシートをSelectすると、このエラーが出るんですよね。
そもそも「非表示のシートを選択する」ということは、どういうことでしょうか。
非表示のシートを印刷することが目的ならば、
そのときだけ表示させて、印刷が終わったらまた非表示にする
…というのはどうでしょうか。
それとも「非表示のシートを表示させる」ことが目的なのでしょうか?


----------
また老婆心ながら…

>If Range("s2") = 5 Then Sheets(5).Select
>If Range("s2") = 6 Then Sheets(6).Select
>If Range("s2") = 7 Then Sheets(7).Select

こうするよりも、
If Range("s2") = 5 Then
  Sheets(5).Select
ElseIf Range("s2") = 6 Then
  Sheets(6).Select
ElseIf Range("s2") = 7 Then
  Sheets(7).Select
End If
という形にしたほうがいいんじゃないかなと思います。
この違いは…って、
もしかしたら承知の上で、最初の3行の形でされてるのかもしれないですね。
すみません。
とりあえずちょっと気になったので、提議だけさせていただきます。

ちなみに、
If Range("s2") = 5 Then
  Sheets(5).Select
ElseIf Range("s2") = 6 Then
  Sheets(6).Select
ElseIf Range("s2") = 7 Then
  Sheets(7).Select
End If
は、
Select Case Range("s2").Value
  Case 5
    Sheets(5).Select
  Case 6
    Sheets(6).Select
  Case 7
    Sheets(7).Select
End Select
とすると、もっとシンプルになることも併記させてください。
ご存知でしたら、ごめんなさい…

【37885】Re:シートを非表示にした状態でシートを...
お礼  16茶  - 06/5/22(月) 15:42 -

引用なし
パスワード
   >わさび さん

そういうやり方があるんですね
知りませんでした。

ご丁寧にありがとうございます m(_ _)m
なにぶん初心者ですので、いろいろご迷惑をおかけしますが
よろしくお願いいたします。

【37915】Re:シートを非表示にした状態でシートを...
発言  わさび  - 06/5/23(火) 12:50 -

引用なし
パスワード
   >16茶 さん

私もまだまだ初心者です。
だからこそ初心者同士、同じ目線でアドバイスし合えることもあるのかなと、
最近そう思うようになってきました。


>ご丁寧にありがとうございます m(_ _)m
>なにぶん初心者ですので、いろいろご迷惑をおかけしますが
>よろしくお願いいたします。

【37916】Re:シートを非表示にした状態でシートを...
お礼  16茶  - 06/5/23(火) 13:04 -

引用なし
パスワード
   >わさび さん

ご丁寧にお返事ありがとうございます。
私にもお力になれるようなことがありましたら、
ご協力させてください m(_ _)m

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