
お世話になります。
宜しければ、お力をお貸し下さい。
現在、業務にて、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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで一時中断したプログラムの...
-
DataGridViewのチェックボック...
-
c# 文字列の最後から1文字削除...
-
Visual C#でストップウォッチ機...
-
SPREADでカーソルの位置を1行目...
-
Eclipseでクリーンが出来ない
-
グリッドビューでのチェックボ...
-
JSPでメッセージボックスを表示...
-
EXCEL2010でセルが編集中かを判...
-
asp.net メッセージボックス表...
-
最新ページを表示する際のF5...
-
CheckBoxをボタン形式にして押...
-
アクティブウィンドウと非アク...
-
Page_Load時にボタンクリックイ...
-
VBAで早押しゲームを作りたい
-
javascript 別ウィンドウを開...
-
AlertダイアログのOKボタンにつ...
-
JSPでボタンを押したら、文字が...
-
Fancyboxのiframe内に閉じるボタン
-
HTMLボタンの文字色を変え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで一時中断したプログラムの...
-
c# 文字列の最後から1文字削除...
-
Eclipseでクリーンが出来ない
-
JSPでメッセージボックスを表示...
-
DataGridViewのチェックボック...
-
メール添付されたPDFファイルが...
-
今更、VBAでRPA、キーボード操...
-
「押下」は「おうか」と読む?
-
javascript 別ウィンドウを開...
-
ロストフォーカスイベントとそ...
-
SPREADでカーソルの位置を1行目...
-
ブラウザの×ボタン(閉じるボタ...
-
JSPでボタンを押したら、文字が...
-
グリッドビューでのチェックボ...
-
表示ボタン押下すると、テキス...
-
Fancyboxのiframe内に閉じるボタン
-
GridViewの項目編集(初歩)
-
【C#】 : WindowsProgramming ...
-
Ctrlキーを押しながらのダブル...
-
C# Enterキーの動作について
おすすめ情報