お世話になります。
宜しければ、お力をお貸し下さい。
現在、業務にて、ExcelのVBAをやっておりますが、VBAが初めてであること、ダイアログシートについての情報がインターネット等で少ない事から、作業が難航しております。
作業環境は、WindowsXP+Excel2003です。
ダイアログシートにて表示させたダイアログのボタンを押下した後に、押下したボタンを一時的に無効にしたいと考えております。
しかし、下記のようなソースを組みましたが、成功致しませんでした。
Sub Auto_Open()
ThisWorkbooks.Dialogsheets(シート名).Show() '…(1)
End Sub
Sub Button1_Click() 'ボタン押下時に呼ばれる
ThisWorkbooks.Dialogsheets(シート名).Buttons(ボタン名).Enabled = False '…(2)
'以下、処理が続く
End Sub
簡単ではありますが、一部を抜き出しました。
上記を動かしても、ボタンが無効になりませんでした。
また、(2)を(1)の手前にすると、ボタンが無効になったのを確認致しましたので、構文自体は間違いではないと思うのですが…
あと、自宅のPCにはExcelがなく、確認が出来ません。
確認が出来るのは、月曜日になってしまいますが、どうかお力をお貸し下さい。
宜しくお願い致します。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
>ダイアログシートについての情報がインターネット等で少ない事から、
なぜダイアログシートなのでしょうか?
古いマクロとの互換を保つために残されているのもです。
今では過去の物になっているので通常は「フォーム」を使って任意のフォームを作成します。
フォーム作成時のボタンのプロパティで最初からEnabled = Falseとするか、InitilizeイベントでボタンをEnabled = Falseに設定します。
http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub0 …
http://www.voicechatjapan.com/excelvba/p11.html
この回答への補足
申し訳ありません。
質問内容にて、重大な欠落がありました。
こちらにて、補足させて頂きます。
ボタンを無効にしたあとに、もう一度有効にしたいのです。
Sub Auto_Open()
ThisWorkbooks.Dialogsheets(シート名).Show() '…(1)
End Sub
Sub Button1_Click() 'ボタン押下時に呼ばれる
ThisWorkbooks.Dialogsheets(シート名).Buttons(ボタン名).Enabled = False '…(2)
'この部分で処理を行う。
ThisWorkbooks.Dialogsheets(シート名).Buttons(ボタン名).Enabled = True
End Sub
宜しくお願い致します。
ご回答ありがとうございました。
仰るとおり、ユーザフォームを使用すべきですが、10年以上前に作られたプログラムの改修となり、時間もない為、ダイアログシートをそのまま使用することになりました。
ダイアログシートのままで実装できればいいのですが、無理ならば、残業覚悟でユーザフォームへの転換を考えることにします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Visual Basic(VBA) ExcelのVBAを使い、複数シートの同一箇所を、同一条件にて一括でソルバーを回す方法について 1 2022/04/23 11:49
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Excel(エクセル) vba 同じブック内での転記について 4 2023/01/15 14:42
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) 【ExcelVBA】動的にボタン、ボタン名を生成できますか? 7 2022/04/08 12:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
c# 文字列の最後から1文字削除...
-
DataGridViewのチェックボック...
-
グリッドビューでのチェックボ...
-
ブラウザの×ボタン判定
-
C# VBAで言うexit subについて
-
SPREADでカーソルの位置を1行目...
-
CheckBoxをボタン形式にして押...
-
Excel:「フォーム」のボタンで...
-
今更、VBAでRPA、キーボード操...
-
ロストフォーカスイベントとそ...
-
JSPでボタンを押したら、文字が...
-
表示ボタン押下すると、テキス...
-
JavaでTABキーヒットを認識する...
-
VBAで一時中断したプログラムの...
-
Eclipseでクリーンが出来ない
-
PreTranslateMessageで音がする
-
Ctrlキーを押しながらのダブル...
-
押す
-
ブラウザの×ボタン(閉じるボタ...
-
Page_Load時にボタンクリックイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
c# 文字列の最後から1文字削除...
-
DataGridViewのチェックボック...
-
VBAで一時中断したプログラムの...
-
Eclipseでクリーンが出来ない
-
ブラウザの×ボタン(閉じるボタ...
-
グリッドビューでのチェックボ...
-
メール添付されたPDFファイルが...
-
SPREADでカーソルの位置を1行目...
-
EXCEL2010でセルが編集中かを判...
-
CheckBoxをボタン形式にして押...
-
最大化ボタンと最小化ボタンを...
-
Ctrlキーを押しながらのダブル...
-
IEの閉じるボタンを消す方法
-
今更、VBAでRPA、キーボード操...
-
C# Enterキーの動作について
-
Page_Load時にボタンクリックイ...
-
Webブラウザの閉じるボタン無効...
-
【C#】 : WindowsProgramming ...
-
Fancyboxのiframe内に閉じるボタン
-
VBのこのコードの意味を教えて...
おすすめ情報