Excel VBA質問箱 IV

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

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


5419 / 13644 ツリー ←次へ | 前へ→

【50839】イベントの実行を回避したいのですが Tsuyo 07/8/17(金) 18:12 質問[未読]
【50842】Re:イベントの実行を回避したいのですが neptune 07/8/17(金) 19:57 発言[未読]
【50843】Re:イベントの実行を回避したいのですが kobasan 07/8/18(土) 0:20 発言[未読]
【50844】Re:イベントの実行を回避したいのですが neptune 07/8/18(土) 8:28 発言[未読]
【50845】Re:イベントの実行を回避したいのですが Tsuyo 07/8/18(土) 9:07 質問[未読]
【50846】Re:イベントの実行を回避したいのですが neptune 07/8/18(土) 9:42 発言[未読]
【50847】Re:イベントの実行を回避したいのですが Tsuyo 07/8/18(土) 11:04 質問[未読]
【50851】Re:イベントの実行を回避したいのですが neptune 07/8/18(土) 21:11 発言[未読]
【50900】Re:イベントの実行を回避したいのですが [名前なし] 07/8/21(火) 22:44 質問[未読]
【50852】Re:イベントの実行を回避したいのですが kobasan 07/8/18(土) 21:17 発言[未読]
【50903】Re:イベントの実行を回避したいのですが Tsuyo 07/8/21(火) 23:19 質問[未読]
【50909】Re:イベントの実行を回避したいのですが kobasan 07/8/22(水) 6:42 発言[未読]
【50915】Re:イベントの実行を回避したいのですが Tsuyo 07/8/22(水) 9:30 お礼[未読]

【50839】イベントの実行を回避したいのですが
質問  Tsuyo  - 07/8/17(金) 18:12 -

引用なし
パスワード
   Changeイベントプロシージャで

If Target.Value = Empty Then
   Application.EnableEvents = False
   Range(Target.Offset(, 1), Target.Offset(, 7)).ClearContents

というコードを書き、クリアされた行の変化で実行されるイベントが起こらないようにしたいのですが、なぜかChangeイベントが動いてしまいます。 ちなみに上記のClearcontentsの命令は実行されています。
テストのためApplication.EnableEventsはこの後Trueにしていないのですが、その後の操作でもイベントは動いています。
 理由が分かる方いましたら教えてください。

【50842】Re:イベントの実行を回避したいのですが
発言  neptune  - 07/8/17(金) 19:57 -

引用なし
パスワード
   ▼Tsuyo さん:
こんにちは

理由が分かる方ではないのですが
> 理由が分かる方いましたら教えてください。
再現しません。

「Worksheet」のChangeイベントですよね?

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = Empty Then
   Application.EnableEvents = False
   Range(Target.Offset(, 1), Target.Offset(, 7)).ClearContents
End If
End Sub

【50843】Re:イベントの実行を回避したいのですが
発言  kobasan  - 07/8/18(土) 0:20 -

引用なし
パスワード
   今晩は。

>If Target.Value = Empty Then
>   Application.EnableEvents = False
>   Range(Target.Offset(, 1), Target.Offset(, 7)).ClearContents
>
> というコードを書き、クリアされた行の変化で実行されるイベントが起こらないようにしたいのですが、なぜかChangeイベントが動いてしまいます。 ちなみに上記のClearcontentsの命令は実行されています。

Application.EnableEvents = False の位置は(1)の所だと思います。これで、

> テストのためApplication.EnableEventsはこの後Trueにしていないのですが、その後の操作でもイベントは動いています。

の問題は解決ですね。

Private Sub Worksheet_Change(ByVal Target As Range)
  Application.EnableEvents = False  '<==(1)
  If Target.Value = Empty Then
    Range(Target.Offset(, 1), Target.Offset(, 7)).ClearContents
  End If
  Application.EnableEvents = True
End Sub

ただし、こうすると、これ以降のイベントは、発生しなくなります。

ということで、このコードからすると、多分、次のようにすべきでしょうね。

Private Sub Worksheet_Change(ByVal Target As Range)
  Application.EnableEvents = False
  If Target.Value = Empty Then
    Range(Target.Offset(, 1), Target.Offset(, 7)).ClearContents
  End If
  Application.EnableEvents = True
End Sub

試してみてください。

【50844】Re:イベントの実行を回避したいのですが
発言  neptune  - 07/8/18(土) 8:28 -

引用なし
パスワード
   ▼kobasan さん:
こんにちは

ん〜。。。
反省。どうも頭が固くなっているなぁ〜

気づかさせてて頂きありがとうございます。

Tsuyoさん>
と、言うことらしいです。m(_ _)m

【50845】Re:イベントの実行を回避したいのですが
質問  Tsuyo  - 07/8/18(土) 9:07 -

引用なし
パスワード
   ▼kobasanさん、neptuneさん
返事が遅れて申し訳ありません。
試してみたのですが状況が変わりませんので、別の理由のようです。
もう少しコードを拡大して載せます。

Private Sub Worksheet_Change(ByVal Target As Range)

'''品名に合わせたリストを選択し表示させる
  If Not Intersect(Target, Range("C7:C26")) Is Nothing Then
   On Error Resume Next 'エラーを無視する
   Application.EnableEvents = False  ←働いていない
   If Target.Value = Empty Then
    Range(Target.Offset(, 1), Target.Offset(, 9)).ClearContents
   Else 
   '名前を付け
   名前 = ActiveCell.Value
   '品目を選択した行の右隣のリストを名前付けしたものに変更
   With Selection.Offset(0, 1).Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:="=" & "部品_" & 名前
    .IgnoreBlank = True
    .InCellDropdown = True
    .IMEMode = xlIMEModeNoControl
    .ShowInput = True
    .ShowError = True
   End With
   Application.EnableEvents = True
   End If
  End If

※下記のコードが動いてしまっているようです。

  If Not Intersect(Target, Range("D7:D26")) Is Nothing Then
   省略
  End If
 
  If Not Intersect(Target, Range("E7:E26")) Is Nothing Then
    省略
  End If

  If Not Intersect(Target, Range("I7:I26")) Is Nothing Then
    省略
  End If
 
End Sub

消した行のチェンジイベントが動いてしまっていると思うのですが。
また他につまらないことをやっていなければ良いのですが(^_^;)
これを見て、思い当たることがありましたら教えて下さい。

【50846】Re:イベントの実行を回避したいのですが
発言  neptune  - 07/8/18(土) 9:42 -

引用なし
パスワード
   ▼Tsuyo さん:
こんにちは

>試してみたのですが状況が変わりませんので、別の理由のようです。
>もう少しコードを拡大して載せます。
すみませんが、どういう条件の時、
※下記のコードが動いてしまっているようです。
のコードを動かしたいのですか?
又、どういう時にイベントを抑止したいのでしょう?

今のコードだと
Not Intersect(Target, Range("C7:C26")) Is Nothing =TRUE
の時しかイベントの抑止は効かないようになってますが。
但し、位置的には
Application.EnableEvents = True
は以下が正解かと思いますが。
   End With
   End If
   Application.EnableEvents = True
  End If

恐らく、ある範囲のセルのデータを変更した時にだけ、イベントを抑止したい
とは思うのですが、
>※下記のコードが動いてしまっているようです。
のコードの中にその処理をしてますか?

それとデバッグ段階では完全にエラーを把握している時以外は、
>On Error Resume Next 'エラーを無視する
は使わない方が良いかと。

【50847】Re:イベントの実行を回避したいのですが
質問  Tsuyo  - 07/8/18(土) 11:04 -

引用なし
パスワード
   ▼neptune さん:
>すみませんが、どういう条件の時、
>※下記のコードが動いてしまっているようです。
>のコードを動かしたいのですか?

説明を端折ってしまって申し訳ありません。
この部品見積のChangeイベントは、
 1.C列の部品分類リストから選択すると、
 2.D列に関連する部品リストが作られるようになっています。 
 3.E列は数量を入力します。 
 4.FとH列は仕入値と原価で、D列リストから選択した部品の価格表からVLOOKUPで  もってきています。
 5.G,I列は数量と仕入値、原価を掛けた値段です。
 6.J列は売値を計算しています。
 このすべてをイベントでやっていますが、下記コードとは4.〜6.のことです。
 この範囲イベントの範囲を7から26行に設定しています。
 
>又、どういう時にイベントを抑止したいのでしょう?
>今のコードだと
>Not Intersect(Target, Range("C7:C26")) Is Nothing =TRUE
>の時しかイベントの抑止は効かないようになってますが。
 当然人間がやることなので、見積の変更や失敗がありますので、内容をCLEARするときもありますが、その削除の仕方をC列を消すとその行全ての内容が消えるようにしました。
 問題は削除されたあとに4.〜6.のイベントが働いて不要な”0”がなぜかF〜P行まで記入されてしまうことです。

>但し、位置的には・・・
 質問を送信したあと発見し直しました。 すいません。
>それとデバッグ段階では完全にエラーを把握している時以外は、
>>On Error Resume Next 'エラーを無視する
>は使わない方が良いかと。
 これも実際は’を付けてテストしています。端折ってすいませんm(_ _)m


>>※下記のコードが動いてしまっているようです。
>のコードの中にその処理をしてますか?
どの様な処理をすれば良いのか分かりませんが、ここがポイントなのでしょうか?
私はC列のイベントにだけ
Application.EnableEvents = False
を入力してやれば上手くいくのではと思っていたのでその他は特に処理はしていません。

以上長くなってしまいましたが、宜しくお願いします。

【50851】Re:イベントの実行を回避したいのですが
発言  neptune  - 07/8/18(土) 21:11 -

引用なし
パスワード
   ▼Tsuyo さん:
こんにちは

ほぼ全体像が見えてきましたので提案ですが、changeイベントを使うのを
止めるってのはどうですか?
わざわざ使いにくいchangeイベントを使う必要は無いと思いますし、
使うことによって返って面倒な処理になると思います。

私ならという事で書いてみます。
>この部品見積のChangeイベントは、
> 1.C列の部品分類リストから選択すると、
> 2.D列に関連する部品リストが作られるようになっています。 
> 3.E列は数量を入力します。 
> 4.FとH列は仕入値と原価で、D列リストから選択した部品の価格表からVLOOKUPで  もってきています。
> 5.G,I列は数量と仕入値、原価を掛けた値段です。
> 6.J列は売値を計算しています。
・1,2,4はselectionchangeでセルのアドレスを判断して行う
・5,6はセルに数式を入れておく

>>又、どういう時にイベントを抑止したいのでしょう?
> 当然人間がやることなので、見積の変更や失敗がありますので、内容をCLEARするときもありますが、その削除の仕方をC列を消すとその行全ての内容が消えるようにしました。
削除ボタンなどを用意しておき、行またはセルを選択させてClearする。
慎重を期すために、Msgboxで削除確認の後、実行。これは一般的な手法と思います。

これは回答ではなく提案という事でお考え下さい。

【50852】Re:イベントの実行を回避したいのですが
発言  kobasan  - 07/8/18(土) 21:17 -

引用なし
パスワード
   皆さん今晩は。

仕事から帰ってみると、レスが進んでいるのですが、遅ればせながら、こんな感じでどうでしょうか。

'(1)(2)(3)のようにすれば、ClearContentsによるイベントは発生しません。

今は、On Error Resume Next は使わない方が良いので、削除しています。

Private Sub Worksheet_Change(ByVal Target As Range)

  Application.EnableEvents = False  '<==●(1)
  If Not Intersect(Target, Range("C7:C26")) Is Nothing Then
    If Target.Value = Empty Then
      Range(Target.Offset(, 1), Target.Offset(, 9)).ClearContents
      GoTo Jump_Exit '<==●(2)
    Else
      '''品名に合わせたリストを選択し表示させる
      '-----------------------
      MsgBox "名前を付け"
      '以下のコードは、上記 MsgBox "名前を付け"で代用し、検討していません。
      '従って、コメントにしています。
      '
      '----------------------
      '名前を付け
      '名前 = ActiveCell.Value
      '品目を選択した行の右隣のリストを名前付けしたものに変更
      'With Selection.Offset(0, 1).Validation
      '  .Delete
      '  .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
      '    xlBetween, Formula1:="=" & "部品_" & 名前
      '  .IgnoreBlank = True
      '  .InCellDropdown = True
      '  .IMEMode = xlIMEModeNoControl
      '  .ShowInput = True
      '  .ShowError = True
      'End With
    End If
  End If

  '※下記のコードが動いてしまっているようです。 
  '●下記のコードは止まっているはず●
  If Not Intersect(Target, Range("D7:D26")) Is Nothing Then
    MsgBox "省略"
  End If
 
  If Not Intersect(Target, Range("E7:E26")) Is Nothing Then
    MsgBox "省略"
  End If

  If Not Intersect(Target, Range("I7:I26")) Is Nothing Then
    MsgBox "省略"
  End If
  
Jump_Exit:   '<==●((3)
  Application.EnableEvents = True
End Sub


>Application.EnableEvents = False
について、正しく理解しておく必要があるように思います。

Application.EnableEvents = False

を入れれば、それ以降のイベントが発せ発生しませんが、それ以後のコードを実行しないということではありません。

Application.EnableEvents = False の意味をよく理解しておいてください。
(ヘルプを見ておくと良いでしょう)


>>又、どういう時にイベントを抑止したいのでしょう?
>>今のコードだと
>>Not Intersect(Target, Range("C7:C26")) Is Nothing =TRUE
>>の時しかイベントの抑止は効かないようになってますが。
> 当然人間がやることなので、見積の変更や失敗がありますので、内容をCLEARするときもありますが、その削除の仕方をC列を消すとその行全ての内容が消えるようにしました。
> 問題は削除されたあとに4.〜6.のイベントが働いて不要な”0”がなぜかF〜P行まで記入されてしまうことです。

上記の問題もクリアされていると思います。
試してみてください。

【50900】Re:イベントの実行を回避したいのですが
質問  [名前なし]  - 07/8/21(火) 22:44 -

引用なし
パスワード
   ▼neptune さん:
大変お世話になってます。
私用と提案の内容を試していたため返事が遅れて、申し訳ありませんでした。

>わざわざ使いにくいchangeイベントを使う必要は無いと思いますし、
>使うことによって返って面倒な処理になると思います。
>・1,2,4はselectionchangeでセルのアドレスを判断して行う
changeとselectionchangeの違が分からなかったため、ヘルプやネットで調べたのですが、selectionchangeの使い方がイマイチ理解できません。セルのアドレスを判断して行うためにはどのようなコードを書いたら良いのでしょうか。そうなるとChangeイベントとどう違うのでしょうか?

>・5,6はセルに数式を入れておく
作り始めた当初は数式を入れていたのですが不都合があったため使うのを止めました。なぜかというと、7行から26行までの20行で同じ処理をしていますが、部品が1つの時もあれば10個の時もあります。見積内訳としてこの表を印刷するのに
Range("B65536").End(xlUp).Select
これで最終行を判断し
ActiveCell.CurrentRegion.Select
部品見積の内容をセレクトし印刷用シートにコピペしています。
見積内訳にはこの部品や配材・製作品など8種類ありこの作業を繰り返して、1枚の見積内訳書として出すために上から詰めコピペを繰り返し見積を完成させます。

問題はこのとき式がセルに入っているとCurrentRegionで可視セルでなくてもセレクトされてしまうということです。そうすると20行全部コピーしてしまって、印刷用シートにコピペする際不要な空白ができてしまいます。
この問題を解決する方法が見つけられなかったため、計算は全てコードでする事にしました。

>削除ボタンなどを用意しておき、行またはセルを選択させてClearする。
削除を20行一遍にするボタンは作ったのですが、1行ごと削除したいということも当然あると思います。そのとき20行全部にボタンを作るのはどうかと思って(重くなるのではと思った)止めました。同じシート(実際は微妙に違うが)を8つ作っているからです。

何分これが初めて本格的にVBAをつかった作品なもので、勉強しながら疑問を持ちつつここまで作ってきました。根本的に考え方がおかしい部分もあるかもしれません。はっきり言って解決してない問題もまだまだあります。

実際このApplication.EnableEventsのイベントは最初はうまく動いてくれていました。便利に使ってもらうためにはシートだけで作成するのに限界を感じて、ActiveXオブジェクトに手をだし始めた頃に特にコードは変えていないのですが、エラーが出るようになってしまいました。バックアップで取ってある以前のブックはClearしても正常に動いてくれます。ですがこの2つのブックのコードを見比べても、どこが悪いのか見つけることができません。変な処理をしぎてすブックが壊れてしまっているのではといまだに疑っています。

また長々と書いてしまい問題が反れていっているようにも感じますが、アドバイスがありましたらまたお願いします。

【50903】Re:イベントの実行を回避したいのですが
質問  Tsuyo  - 07/8/21(火) 23:19 -

引用なし
パスワード
   ▼kobasan さん:
お世話になります。私用と検証で時間が返事が遅れ申し訳ありませんでした。
Application.EnableEventsの位置を変え、Goto文を入れてみたのですが、
「今度は型が一致しません」というエラーが出ます。
出る位置はどういう法則か分かりませんが1.、2.の2か所です。
Goto文でJump_Exit:まで移動しているはずなのですが・・・

Private Sub Worksheet_Change(ByVal Target As Range)

'[[ 部品内訳入力画面 Macro ]]

''すべての行の見積単価を検索

'''品名に合わせたリストを選択し表示させる
  Application.EnableEvents = False
  If Not Intersect(Target, Range("C7:C26")) Is Nothing Then
   'On Error Resume Next 'エラーを無視する
   'イベントプロシージャーの実行を回避する
  
   If Target.Value = Enpty Then ←1.デバックで黄色表示
    Range(Target.Offset(, 1), Target.Offset(, 9)).ClearContents
    GoTo Jump_Exit
   Else
  
   '名前を付け
   名前 = ActiveCell.Value
   '品目を選択した行の右隣のリストを名前付けしたものに変更
   With Selection.Offset(0, 1).Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:="=" & "部品_" & 名前
    .IgnoreBlank = True
    .InCellDropdown = True
    .IMEMode = xlIMEModeNoControl
    .ShowInput = True
    .ShowError = True
   End With
   End If
   Application.EnableEvents = True
  End If

'''品名が変更されたら見積金額を変更
  If Not Intersect(Target, Range("D7:D26")) Is Nothing Then
   MsgBox Target.Address
   'On Error Resume Next 'エラーを無視する
   ''支給品かどうかの判定
   If Target.Offset(, -2).Value <> True Then  ←2.デバック
    '仕入単価を検索
    Set 範囲 = Worksheets("部品T").Range("C5:H99")
    列番号 = 4
    検索値 = ActiveCell.Value
    仕入 = Application.WorksheetFunction. _
    VLookup(検索値, 範囲, 列番号, False)
    ActiveCell.Offset(, 2).Value = 仕入
    数量 = ActiveCell.Offset(, 1)
    仕入金額 = 仕入 * 数量
    ActiveCell.Offset(, 3).Value = 仕入金額
    '見積原価を検索
    Set 範囲 = Worksheets("部品T").Range("C5:H99")
    列番号 = 5
    検索値 = ActiveCell.Value
    見積原価 = Application.WorksheetFunction. _
    VLookup(検索値, 範囲, 列番号, False)
    ActiveCell.Offset(, 4).Value = 見積原価
    原価金額 = 見積原価 * 数量
    ActiveCell.Offset(, 5).Value = 原価金額
    '見積金額を定価とし検索
    Set 範囲 = Worksheets("部品T").Range("C5:H99")
    列番号 = 3
    検索値 = ActiveCell.Value
    定価 = Application.WorksheetFunction. _
    VLookup(検索値, 範囲, 列番号, False)
    見積金額 = 定価 * 数量
    ActiveCell.Offset(, 6).Value = 見積金額
   End If
  End If
 
'''数量が変更されたら各合計金額を変更
  If Not Intersect(Target, Range("E7:E26")) Is Nothing Then
   '入力後にセルを移動しない()
   Application.MoveAfterReturn = False
   'On Error Resume Next 'エラーを無視する
   '支給品かどうかの判断
   If Target.Offset(, -3).Value <> True Then
    数量 = Target.Offset(, 0).Value
    仕入単価 = Target.Offset(, 1).Value
    Target.Offset(, 2).Value = 仕入単価 * 数量
    原価単価 = Target.Offset(, 3).Value
    原価金額 = 原価単価 * 数量
    Target.Offset(, 4).Value = 原価金額
    '見積金額を定価とし検索
    Set 範囲 = Worksheets("部品T").Range("C5:H99")
    列番号 = 3
    検索値 = Target.Offset(, -1).Value
    定価 = Application.WorksheetFunction. _
    VLookup(検索値, 範囲, 列番号, False)
    Target.Offset(, 5).Value = 定価 * 数量
   End If
  End If

'''仕入金額が変更されたら仕入合計を変更
  If Not Intersect(Target, Range("I7:I26")) Is Nothing Then
   Sheets("メイン").Range("J13").Value = Range("G27").Value
   Sheets("メイン").Range("Q13").Value = Range("I27").Value
   Sheets("メイン").Range("X13").Value = Range("J27").Value
  End If
 
Jump_Exit:
  Application.MoveAfterReturn = True
End Sub

>を入れれば、それ以降のイベントが発せ発生しませんが、それ以後のコードを実行しないということではありません。
>
>Application.EnableEvents = False の意味をよく理解しておいてください。
>(ヘルプを見ておくと良いでしょう)

次の使用例は、BeforeSave イベントが発生しないように、ファイルを保存する前にイベントを無効にします。

Visual Basic for Applications
Application.EnableEvents = False
ActiveWorkbook.Save
Application.EnableEvents = True

ヘルプを見たのですが上記のようにしか書かれていませんでした。
発生しないのと、実行しないとではどう違うのでしょうか?

【50909】Re:イベントの実行を回避したいのですが
発言  kobasan  - 07/8/22(水) 6:42 -

引用なし
パスワード
   おはようございます。

>Application.EnableEventsの位置を変え、Goto文を入れてみたのですが、
>「今度は型が一致しません」というエラーが出ます。
>出る位置はどういう法則か分かりませんが1.、2.の2か所です。
>Goto文でJump_Exit:まで移動しているはずなのですが・・・

このエラーは、選択範囲に問題があると思います。
Targetが1つのセルの時だけ動くようにするといいです。


>Private Sub Worksheet_Change(ByVal Target As Range)
>
>'[[ 部品内訳入力画面 Macro ]]
>
>''すべての行の見積単価を検索
>
>'''品名に合わせたリストを選択し表示させる

  '-------------------------------------------<==●追加●
  '選択範囲がセル以外の時のエラー回避
  If Not TypeOf Target Is Range Then Exit Sub
  'セルの選択範囲が1つ以上の時のエラー回避
  If Target.Count > 1 Then Exit Sub
    '---------------------------------'<==●ここまで追加●

>  Application.EnableEvents = False
>  If Not Intersect(Target, Range("C7:C26")) Is Nothing Then
>   'On Error Resume Next 'エラーを無視する
>   'イベントプロシージャーの実行を回避する
>  
>   If Target.Value = Enpty Then ←1.デバックで黄色表示
>    Range(Target.Offset(, 1), Target.Offset(, 9)).ClearContents
>    GoTo Jump_Exit
>   Else

   ・・・・・・

>   If Target.Offset(, -2).Value <> True Then  ←2.デバック

これで、1,2のエラーは発生しないと思います。

On Error Resume Next はエラー内容が分かっていて、そのエラーをうまく利用するときに使うといいです。
どんなエラーが起こっているか分からないまま使うと、逆に予期せぬ弊害が発生して、訳が分からなくなります。

【50915】Re:イベントの実行を回避したいのですが
お礼  Tsuyo  - 07/8/22(水) 9:30 -

引用なし
パスワード
   ▼kobasan さん:
朝早くからありがとうございます。
下記を組み入れたところ
>  '選択範囲がセル以外の時のエラー回避
>  If Not TypeOf Target Is Range Then Exit Sub
>  'セルの選択範囲が1つ以上の時のエラー回避
>  If Target.Count > 1 Then Exit Sub
正常に動いてます(T_T)
Targetの選択が複数のセルのだったから型が一致しないというエラーがでたんですね。
If Not TypeOf Target Is Range Then Exit Sub
これがなぜ入れられているのかが理解出来ませんがコントロール用なのでしょうか?

>On Error Resume Next はエラー内容が分かっていて、そのエラーをうまく利用するときに使うといいです。
>どんなエラーが起こっているか分からないまま使うと、逆に予期せぬ弊害が発生して、訳が分からなくなります。
これからは肝に命じておきます。忠告ありがとうございます。

ともかくアドバイスの内容も理解出来ないという、自分の知識不足を改めて実感しました。この作品が完成するまで、これからが思いやられます。

kobasan さん
neptune さん
ありがとうございました。
また投稿を見かけたときはよろしくお願いします。

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