No.1
- 回答日時:
こんにちは。
ユーザー操作による手作業での編集を無効にする
Application..Interactive = False
' ' 計算処理
Application..Interactive = True
一応、ヘルプの内容を確認しておいてください。
以下VBAヘルプより抜粋
====================================
Application.Interactive プロパティ
True の場合、Excel が対話モードになります。既定値は True です。このプロパティが False に設定されると、キーボードやマウスからの入力を受け付けなくなります。ただし、表示されたダイアログ ボックスへの入力は可能です。値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。
構文
式.Interactive
式 Application オブジェクトを表す変数。
備考
入力できない状態にしておくと、マクロで Excel のオブジェクトを移動したりアクティブにしているときに、ユーザーからの干渉を防ぐことができます。
DDE、または OLE オートメーションを使ってほかのアプリケーションと Excel とでデータをやり取りするときには、このプロパティに False を設定しておくと便利です。
ただし、このプロパティに False を設定したときは、マクロの終了前に必ず設定を True に戻してください。True に戻すのを忘れると、マクロが終了しても Excel に入力することができません。
No.2
- 回答日時:
#1.cjです。
#1訂正と補足です。Application.Interactive = False
' ' 計算処理
Application.Interactive = True
ドットがダブっていました。失礼。
それと、計算処理中のエラーには、しっかりトラップを掛けた方がいいです。
または、エラーダイアログからデバッグせずに終了すると、
(再起動するまで)シート上で編集が出来なくなる、
ということを強く意識しておいた方がいいです。
訂正、補足、以上です。
ありがとうございます。
デバッグモードに入るのは自分だけなので、
Trueに戻すことを覚えておきます。
計算処理中のエラーには、しっかりトラップを掛けた方がいいです。
とはどういう意味でしょうか?
トラップが良く分かりません。
No.3
- 回答日時:
#1、2、cjです。
#2お礼欄へのレスです。計算処理そのものについて、実行時エラーが起こることはない、と、
断言できる内容なら、何も考えなくていいです。
今は何も問題なかったとしても、後々追加される記述の方で、
エラーの可能性を看過してしまったり、というのは、
よくあることなので、心掛け程度には理解しておいた方がいいです。
> デバッグモードに入るのは自分だけなので、
...
> 計算処理中のエラーには、しっかりトラップを掛けた方がいいです。
> とはどういう意味でしょうか?
エンドユーザーによる実行に際して、もし実行時エラーとなり、
実行時エラーを報せるダイアログが表示されてしまうと、
VBAを知らない大抵のユーザーは、[終了]を押してしまいますよね?
そうすると、
> > エラーダイアログからデバッグせずに終了すると、
> > (再起動するまで)シート上で編集が出来なくなる、
ということになり、そのユーザーは、
驚きと困惑で手が止まってしまうことでしょう。
ヘルプに書いてあるところの
> > ただし、このプロパティに False を設定したときは、マクロの終了前に必ず設定を True に戻してください。
を実践する為に、
エラーが起きた場合、どのように処理を抜ける(または復旧/継続する)か決めておいて、
必ず、
Application.Interactive = True
を実行するようにOn Error ステートメントでエラートラップを掛けておく等の対策が必要、
ということです。#んー、なんか説明下手ですみません。
例えば、エラーが出たら、処理は中途のまま、ただSubを抜けるのなら、こんな感じ。
Sub HogeHoge()
Application.Interactive = False
On Error GoTo ErrOut_
' ' (この行以降でエラーが起きれば即、ErrOut_行へジャンプ)
' ' 計算処理
' ' 計算処理
' ' 計算処理
ErrOut_:
Application.Interactive = True
If Err Then MsgBox "処理HogeHogeはエラーにより不正終了しました。" _
& "表示中のダイアログのコピーを取った上で" _
& "担当○○まで連絡してください。" _
& vbLf & Err & vbLf & Err.Description
End Sub
No.4ベストアンサー
- 回答日時:
#1-3、cjです。
#3お礼欄へのレスです。> デバッグモードに入らないから、
> Trueに戻らない危険が有るのですね。
はい、その通りです。
滅多に無い、ことかも知れませんが、反響は大きそうです。
もう少し扱い易い方法はないか?ということで思いつきましたが、
UserformをApplication.Windowの外、見えない場所に
.Show vbModal表示して、処理後にHide
なんて変化球も、アリかも知れませんね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ネットワーク上のエクセルとリンクしている時にデータ更新をvbaで、refresh Allで行う場合の 2 2023/04/10 05:39
- Excel(エクセル) CSVファイルでVBAを動かす方法 3 2023/04/04 10:22
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Excel(エクセル) エクセルで計算結果が0でないときのみセルを更新したい 4 2022/07/30 11:58
- Excel(エクセル) マクロで謎の現象が起きていて困ってます。 エクセルで作ったボタンを押すとマクロが動いて処理をしてくれ 3 2023/06/22 17:28
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- Excel(エクセル) ExcelのVBAで再帰処理を使って、1〜10までの整数の和と10の階乗の計算をしたいです。どなたか 1 2022/11/24 10:59
- JavaScript javascript で外部サイトにデータ入力させて自動でボタンを押すことは可能ですか? 1 2023/01/30 16:23
- Excel(エクセル) エクセル VBA実行中のApplication.ScreenUpdatingについて 3 2023/07/13 21:06
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
Access の VBA 実行中に他の操作をさせたくない
Visual Basic(VBA)
-
Excelでマクロ実行中に画面を固定する方法
Visual Basic(VBA)
-
VBAでマクロ実行中はExcelのマウスやキーボードを使ってセル選択などを無効にしたい
Visual Basic(VBA)
-
-
4
マクロ実行時、ユーザーフォームにラベルのテキストが表示されません。
Access(アクセス)
-
5
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
6
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
7
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
8
ブック名、シート名を他のモジュールからも参照可能にする方法
Access(アクセス)
-
9
エクセルVBAでコマンドボタンをロックしたい
Excel(エクセル)
-
10
【Excel VBA】シートコピー時、マクロコードはコピーしたくない
Access(アクセス)
-
11
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
12
EXCEL VBAのコンボボックスで日だけを表示する方法
Excel(エクセル)
-
13
【VB2008】 マウス操作の一時的無効化
Visual Basic(VBA)
-
14
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
15
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
16
EXCEL VBAのユーザーフォームに引数を渡す方法について
Excel(エクセル)
-
17
VBAのプログラムで、DIAG = 1# / A(L, L) や R(
その他(プログラミング・Web制作)
-
18
[Excel]ADODBでNull変換されてしまう
Visual Basic(VBA)
-
19
VBA アクティブでないシートのセルを選択したり、クリアしたり
Excel(エクセル)
-
20
Excel:入力規制で選択された値によって他のセルの入力規制リストを変更する方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Word VBA。各マクロの間に待ち...
-
IF文に時間(何時から何時ま...
-
UWSCのTHREADについて
-
特定の名前のオートシェイプの...
-
【C#/Java?】try-catchでcatch...
-
VCでビープ音を鳴らし続ける
-
VBA 複数の行を高速で削除する...
-
iPhoneのニューラルエンジンっ...
-
途中で処理を中断させたい (ア...
-
private subモジュールを他のモ...
-
【Vb.net】プリンタジョブの取得
-
Functionで戻り値を複数返す方法
-
StatusStripの表示が更新されな...
-
シェルスクリプトでファイル内...
-
シグナル 6(SIGABRT)とは?
-
vbaのエラー対応(実行時エラー...
-
Access プログレスバー 画面...
-
パソコンへの「Dropbox...
-
今日スマホでネットをしていた...
-
ユーザーフォームのテキストボ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
private subモジュールを他のモ...
-
IF文に時間(何時から何時ま...
-
マクロで、次のコードへ行く前...
-
特定の名前のオートシェイプの...
-
シグナル 6(SIGABRT)とは?
-
特定のファイルを他のプロセス...
-
ExcelのVBAで、選択したファイ...
-
Excel VBA セルの名前があるか...
-
どう増強すべきか
-
Word VBA。各マクロの間に待ち...
-
【VBA】エラー処理で別プロシー...
-
UWSCのTHREADについて
-
シェルスクリプトでファイル内...
-
ドリブン??
-
Functionで戻り値を複数返す方法
-
iPhoneのニューラルエンジンっ...
-
エクセル VBAで複数セル選択時...
-
COBOL OCCURSで指定したデータ...
-
どうやってもFor文を抜けてしま...
おすすめ情報