No.4ベストアンサー
- 回答日時:
#1-3、cjです。
#3お礼欄へのレスです。> デバッグモードに入らないから、
> Trueに戻らない危険が有るのですね。
はい、その通りです。
滅多に無い、ことかも知れませんが、反響は大きそうです。
もう少し扱い易い方法はないか?ということで思いつきましたが、
UserformをApplication.Windowの外、見えない場所に
.Show vbModal表示して、処理後にHide
なんて変化球も、アリかも知れませんね。
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.2
- 回答日時:
#1.cjです。
#1訂正と補足です。Application.Interactive = False
' ' 計算処理
Application.Interactive = True
ドットがダブっていました。失礼。
それと、計算処理中のエラーには、しっかりトラップを掛けた方がいいです。
または、エラーダイアログからデバッグせずに終了すると、
(再起動するまで)シート上で編集が出来なくなる、
ということを強く意識しておいた方がいいです。
訂正、補足、以上です。
ありがとうございます。
デバッグモードに入るのは自分だけなので、
Trueに戻すことを覚えておきます。
計算処理中のエラーには、しっかりトラップを掛けた方がいいです。
とはどういう意味でしょうか?
トラップが良く分かりません。
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 に入力することができません。
お探しの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も見ています
-
風水の観点で選ぶ観葉植物とは?置き場所や上げたい運気ごとの注意点を紹介!
観葉植物で運気をアップするコツを、風水デザイン1級建築士の福島昌彦さんに伺った。
-
Access の VBA 実行中に他の操作をさせたくない
Visual Basic(VBA)
-
Excelでマクロ実行中に画面を固定する方法
Visual Basic(VBA)
-
VBAでマクロ実行中はExcelのマウスやキーボードを使ってセル選択などを無効にしたい
Visual Basic(VBA)
-
-
4
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
5
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
6
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
7
ブック名、シート名を他のモジュールからも参照可能にする方法
Access(アクセス)
-
8
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
9
エクセルVBAでコマンドボタンをロックしたい
Excel(エクセル)
-
10
EXCEL VBAのユーザーフォームに引数を渡す方法について
Excel(エクセル)
-
11
【Excel VBA】シートコピー時、マクロコードはコピーしたくない
Access(アクセス)
-
12
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
13
VBAのプログラムで、DIAG = 1# / A(L, L) や R(
その他(プログラミング・Web制作)
-
14
EXCEL VBAのコンボボックスで日だけを表示する方法
Excel(エクセル)
-
15
【VB2008】 マウス操作の一時的無効化
Visual Basic(VBA)
-
16
マクロ実行時、ユーザーフォームにラベルのテキストが表示されません。
Access(アクセス)
-
17
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
18
vbaで参照設定
PowerPoint(パワーポイント)
-
19
[Excel]ADODBでNull変換されてしまう
Visual Basic(VBA)
-
20
VBA アクティブでないシートのセルを選択したり、クリアしたり
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IF文に時間(何時から何時ま...
-
【C#/Java?】try-catchでcatch...
-
vbaのエラー対応(実行時エラー...
-
特定の名前のオートシェイプの...
-
UWSCのTHREADについて
-
どうやってもFor文を抜けてしま...
-
条件文でelseはつけるべき?
-
ドリブン??
-
private subモジュールを他のモ...
-
エラー時に処理を戻したい。
-
Excelマクロ処理の裏でWordを使...
-
どう増強すべきか
-
複数個のTextBoxでいずれかの内...
-
VBA For Each 〜 複数条件について
-
RaiseEventのメリット
-
ExcelのVBAで、選択したファイ...
-
EXCELマクロ実行中に
-
Functionで戻り値を複数返す方法
-
特定のファイルを他のプロセス...
-
Excel VBA セルの名前があるか...
マンスリーランキングこのカテゴリの人気マンスリー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で指定したデータ...
-
【Vb.net】プリンタジョブの取得
おすすめ情報