Excel VBA質問箱 IV

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

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


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

【10921】アドインマクロを動作させなくする方法 agalinman 04/2/18(水) 20:22 質問
【10923】Re:アドインマクロを動作させなくする方法 ichinose 04/2/18(水) 20:54 回答
【10924】Re:アドインマクロを動作させなくする方法 agalinman 04/2/18(水) 21:01 お礼
【10925】Re:アドインマクロを動作させなくする方法 角田 04/2/18(水) 21:03 回答
【10926】Re:アドインマクロを動作させなくする方法 ichinose 04/2/18(水) 21:06 お礼
【10931】Re:アドインマクロを動作させなくする方法 Jaka 04/2/19(木) 9:17 発言
【10940】Re:アドインマクロを動作させなくする方法 agalinman 04/2/19(木) 10:29 お礼

【10921】アドインマクロを動作させなくする方法
質問  agalinman  - 04/2/18(水) 20:22 -

引用なし
パスワード
   <質問の背景>
マクロを作成し、そのファイルをアドインとして保存しました。
ツールバー上のユーザー定義ボタンにこのマクロを登録し、
誰もがボタンを押すだけでマクロが実行できるようにしました。

マクロの中には特定のセルの値を抽出する下記のような記述があります。

Dim S_data as String
S_data = Range("B2").Value

ボタンとして登録しているので、ユーザはいつでもボタンを押せてしまいます。
マクロに上記のような記述があるため、
Excel は起動していても Woorkbook が 1つも開いていない状態では
ここで実行がストップしてしまいます。

<質問内容>
以上のような状況を回避するため、Workbook が 1つも開いていない状態を
マクロ内で把握したいのですが、記述の仕方(ロジック)が分かりません。
どなたか助言いただければと思います。

なお、「ツールバーのボタンの非表示」という方法は使えません。
ボタンを押してもマクロが実行できないようにするのに他に方法があれば、
それでも構いません。

よろしくお願い致します。

【10923】Re:アドインマクロを動作させなくする方法
回答  ichinose  - 04/2/18(水) 20:54 -

引用なし
パスワード
   ▼agalinman さん:
こんばんは。


><質問の背景>
>マクロを作成し、そのファイルをアドインとして保存しました。
>ツールバー上のユーザー定義ボタンにこのマクロを登録し、
>誰もがボタンを押すだけでマクロが実行できるようにしました。
>
>マクロの中には特定のセルの値を抽出する下記のような記述があります。
>
>Dim S_data as String
>S_data = Range("B2").Value
>
>ボタンとして登録しているので、ユーザはいつでもボタンを押せてしまいます。
>マクロに上記のような記述があるため、
>Excel は起動していても Woorkbook が 1つも開いていない状態では
>ここで実行がストップしてしまいます。
>
><質問内容>
>以上のような状況を回避するため、Workbook が 1つも開いていない状態を
>マクロ内で把握したいのですが、記述の仕方(ロジック)が分かりません。
>どなたか助言いただければと思います。
>
>なお、「ツールバーのボタンの非表示」という方法は使えません。
>ボタンを押してもマクロが実行できないようにするのに他に方法があれば、
>それでも構いません。
>
>よろしくお願い致します。
Workbooks.Countで判断してみては?

http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=10894;id=excel
に使用例が紹介されていました。
ちなみにアドインは、数に入りませんよ。

【10924】Re:アドインマクロを動作させなくする方法
お礼  agalinman  - 04/2/18(水) 21:01 -

引用なし
パスワード
   ichinoseさん、こんばんは。
無事できました。

こんな簡単な記述でよかったんですね。
自分の勉強の足りなさ(無知)が恥ずかしい限りです。

本当にどうもありがとうございました。

【10925】Re:アドインマクロを動作させなくする方法
回答  角田 WEB  - 04/2/18(水) 21:03 -

引用なし
パスワード
   わたしは、これでやってますよ
使えるシートが有るか無いか!

If ActiveSheet Is Nothing Then
 '駄目よ〜ダメ〜駄〜目♪
Else
 'はい、どうぞ♪
End If

【10926】Re:アドインマクロを動作させなくする方法
お礼  ichinose  - 04/2/18(水) 21:06 -

引用なし
パスワード
   ▼角田 さん:
こんばんは。

>わたしは、これでやってますよ
>使えるシートが有るか無いか!
>
>If ActiveSheet Is Nothing Then
> '駄目よ〜ダメ〜駄〜目♪
>Else
> 'はい、どうぞ♪
>End If
今、気が付きました。こっちの方がいいですよ。
だって、ブックが非表示のときもありますからね。
訂正しようと思ったら、角田さんが指摘してくれました。

【10931】Re:アドインマクロを動作させなくする方法
発言  Jaka  - 04/2/19(木) 9:17 -

引用なし
パスワード
   おはようございます。
私はこんなへんてこな方法でやってました。
すみません。

Sub Bookの有無チェック()
  'Bookの最小化では、Bookは、Activeに分類されている。
  Dim 実行ブック名 As String
  On Error Resume Next
  実行ブック名 = ActiveWorkbook.Name
  DoEvents
  If 実行ブック名 = "" Then
    MsgBox "ブックが何も開かれてません。"
    End
  Else
    'MsgBox 実行ブック名
    Workbooks(実行ブック名).Activate
  End If
End Sub

【10940】Re:アドインマクロを動作させなくする方法
お礼  agalinman  - 04/2/19(木) 10:29 -

引用なし
パスワード
   みなさん、おはようございます。agalinmanです。
いろんなやり方があるもんですね。
意見がたくさん聞けて楽しいです。

今回はNothingを使う方法を利用させていただくことに致します。
ありがとうございました。

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