• ベストアンサー

度々お世話になります・・・。

お世話になります。良くこのカテゴリーの投稿と回答を参考にさせていただいています。つい数日前にも質問させていただきました。その件に関しては一応の解決を見たんですが・・・現状で幾つか問題点があり、困っています。どなたかおわかりの方がいらっしゃればご教示ください。 1.コモンダイアログコントロールでキャンセルを選択した際のエラーの処理。 下記のコードのようにしているのですが、エラーが消えません・・・。 Private Sub Command2_Click() 'ファイルを開く With Form1.CommonDialog1 .CancelError = True .ShowOpen On Error GoTo ErrHandler End With Fn = CommonDialog1.FileName Workbooks.Open Fn Text1.Text = Fn Debug.Print Fn ActiveWorkbook.Activate ActiveWorkbook.Visible = True ActiveWorkbook.UserControl = True ErrHandler: End Sub ・・・過去の質問や参考書を見てこのようにしてみたのですが、どうも上手く行きません。何か原因があるのでしょうか? 2.VB上からExcelを読み込んで処理を行った後にExcelのプロセスが残ってしまう。 一応、QuitやNothingもしてるんですが・・・いつも残ってしまうので心配です。 なにぶん初心者ですのでいい知恵が思い浮かびません。皆様どうかよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

On Error は.ShowOpenする前に書かないといけません。

mmc820
質問者

お礼

できるようになりました!!こんな簡単な事だったんですね(汗)助かりました。ありがとうございました。

その他の回答 (1)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 1.はNo.1の方の言う通り。 2.は、差し障りない程度で、その部分のコードを書いてもらわないと何とも言えません。 では。

mmc820
質問者

お礼

申し訳ありません。1.がケアレスミスだったのでいろいろと見直してみたら解決してしまいました。わざわざご回答頂いたのにすみません。お騒がせしました。今後もまたこちらでいろいろと質問させていただくとは思いますが、よろしくお願いします。ありがとうございました。

関連するQ&A

  • excelのタスクバーアイコンが・・・

    どうも、お世話になります。mmc820です。 現在、VB上でexcelを操作するプログラムを作成しているのですが、excelを開いてフォームをアクティブ(前面)にしたときにタスクバーのexcelのアイコンが点滅してしまいます。VBで動かすと問題ないのですが、コンパイルして.EXEで実行するとこの現象が起きます。処理自体には影響は無いのですが、このままではユーザーが誤ってエクセルを閉じてしまう可能性がある(途中で閉じてしまうと当然処理が出来なくなります)ので何とかしたいと思っています。コードは以下の通りです。稚拙なコーディングですが・・・。 Dim Fn As String 'ファイルを開く With Form1.CommonDialog1 On Error GoTo ErrHandler2 .CancelError = True .Flags = cdlOFNFileMustExist .ShowOpen End With Fn = CommonDialog1.FileName Workbooks.Open Fn Text1.Text = Fn 'Debug.Print Fn cmdstart.Enabled = True ActiveWorkbook.Application.Visible = True ActiveWorkbook.Activate Application.ScreenUpdating = True Form1.SetFocus '実行画面を前面に表示 DoEvents ErrHandler2: ・・・いかがでしょうか?原因・解決法がおわかりの方、アドバイスいただければ幸いです。よろしくお願いします。

  • VBでファイル読み込み

    VBであるところにあるCSVファイルのデータを読み込みエクセルへ変換出力したいのですが教えてください。コモンダイアログボックス(?)と言うものを使って作成したいのです。よろしくお願いします。 がんばってやってみたのですがわかりません。教えてください。 Private Sub Command1_Click() Dim gnum(25), tensuu(32, 99) Dim sougouten(99), heikin(99), gouhi$(99) 'ファイルを開く On Error GoTo ErrHandler 'コモンダイアログボックス CommonDialog1.CancelError = True CommonDialog1.Filter = "すべてのファイル (*.*)|*.*|" _ & "テキスト ファイル (*.txt)|*.txt|バッチ ファイル (*.bat)|*.bat" CommonDialog1.FilterIndex = 2 CommonDialog1.ShowOpen With CommonDialog1 .FileName = "" .ShowOpen End With Exit Sub ErrHandler: ' ユーザーが [キャンセル] ボタンをクリックしました。 End Sub

  • CommonDialogの、細かい使い方。

    コモンダイアログで、「ShowSave」を、やり、 保存画面を開いて、セーブさせようと思うのですが、 なぜか、保存押しても、キャンセル押しても、保存してしまいます。 学校で、MSDNをみたときには、 CommonDialog.CancelError = True On Error GoTo ErrHandler ~中身・・保存の、コーディング~ ErrHandler:   End sub こういう風にやると、キャンセル押したときに、 下の、ErrHandler: この部分に、飛んで、終わるはずなんですが、うまくいきません。 誰か、 CommonDialog.ShowSave で、開いたときのちゃんとした、保存方法おしえてください。お願いします。

  • テキストボックスの中身をリセット(クリア)したい

    ファイル(*.txtのみ)を読み込んで、テキストボックスに中身を表示させておりますが、2回以上ファイルを読み込んだ時、テキストボックスに書かれた内容を消した上で、読み込んだファイルの中身を表示させるように変更できないでしょうか。また、テキストボックスに書かれた内容をクリアするボタンの作り方も知りたいです。 例、1.ABCと書かれたテキストの読み込み→ABC   とテキストボックスに表示される    2.XYZと書かれたテキストの読み込み→ABC XYZ とテキストボックスに表示される これを2.を読み込んだ時、ABCを表示せずにXYZと表示したい コードの一部 Private Sub Command1_Click() CommonDialog1.Filter = "テキスト(*.txt)|*.txt|すべて(*.*)|*.*" CommonDialog1.FilterIndex = 1 CommonDialog1.Flags = cdlONFileMustExist '既存ファイルのみ読み込み CommonDialog1.CancelError = True On Error Resume Next CommonDialog1.ShowOpen If (Err = 0) Then FileRead CommonDialog1.FileName End If On Error GoTo 0 End Sub

  • VB6 名前を指定して保存する際に・・・

    こんにちわ。 ファイルを保存する際のコードを考えて作ったのですが、少し困ったので教えてください。 コードは・・・ With CommonDialog1 .CancelError = True .DialogTitle = "保存ファイル名指定" .DefaultExt = ".txt" .Filter = "テキストファイル(*.txt)|*.txt" .FilterIndex = 1 .ShowSave End With On Error GoTo aaa CommonDialog1.ShowSave Open CommonDialog1.FileName For Binary As #1 Put #1, , Text2.Text Close #1 Text2.Text = "" Exit Sub aaa: If Err.Number = 32755 Then MsgBox "キャンセル" End If これなんですが、text2の内容を保存する際に保存名を入れますが、一度保存OKを押すと「ファイル名.txt」となるのはいいんですが本当は1回OKを押した時点でtxtファイルとして保存できるようにしたいので、どなたか分かる方アドバイスお願いします。

  • CommonDialog でエラー

    OSとExcelを再インストールしたところ、下記のところでエラーが出ました。 なぜでしょうか。解決策はあるでしょうか。 以前は、使用できておりました。 Excelのマクロは、ほとんど理解しておりません。 他人が作成したマクロになります。 OS:WindowsXp Excel:2003 よろしくお願いします。 Private Sub CommandButton3_Click() Dim strArg() As String Dim i As Integer CommonDialog1.filename = ""   ←ここでエラーがでてとまります。 CommonDialog1.ShowOpen strArg = Split(CommonDialog1.filename, "\")  ごにょごにょ演算など。 End Sub

  • ファイルの読み込み

    CSVファイルを読み込んでAccessへ格納したいのですがどうしたら良いのでしょうか? ここまではできたのですが・・・・。 Private Sub Command1_Click() CommonDialog1.Flags = cdlOFNFileMustExist Or cdlOFNHideReadOnly CommonDialog1.ShowOpen End Sub

  • ファイルを読み込んだらVBがフリーズする

    ↓のコードだと、ファイルを読み込んだ時点でVBがフリーズします(平気なファイルも一部ある)。原因と解決法を教えてください。 Private Sub Command1_Click() CommonDialog1.Filter = "テキスト(*.txt)|*.txt|すべて(*.*)|*.*" CommonDialog1.FilterIndex = 1 CommonDialog1.Flags = cdlONFileMustExist CommonDialog1.CancelError = True On Error Resume Next CommonDialog1.ShowOpen If (Err = 0) Then FileRead CommonDialog1.FileName End If On Error GoTo 0 End Sub Private Sub FileRead(FL As String) Dim FileNo As Integer Dim strDAT As String Dim strELM As String Dim pot1 As Integer, pot2 As Integer Dim pDB1 As Integer, pDB2 As Integer FileNo = FreeFile() Open FL For Input As #FileNo While Not EOF(FileNo) Line Input #FileNo, strDAT strDAT = strDAT & ":" pot1 = InStr(strDAT, ":") While pot1 > 0 strELM = Left(strDAT, pot1) pot2 = InStr(strELM, "OPEN") While pot2 > 0 pDB1 = InStr(strELM, Chr(&H22)) If pDB1 > 0 Then '前の『"』の位置 pDB2 = InStr(pDB1 + 1, strELM, Chr(&H22)) If pDB2 > 0 Then RichTextBox1.Text = RichTextBox1.Text & _ Mid(strELM, pDB1 + 1, pDB2 - pDB1 - 1) & vbCrLf End If End If pot2 = InStr(pDB2 + 1, strELM, "OPEN") Wend strDAT = Mid(strDAT, pot1 + 1) pot1 = InStr(strDAT, ":") Wend Wend Close #FileNo End Sub

  • Excel2000マクロ_全てのシートに対して埋込グラフのタイトルをシート名にする

    何方か、回答をお願いします。 下記のマクロは全てのシートに対して埋込グラフのタイトルをシート名にする物ですが ChartObjectsメソッドは失敗しましたと出るときが有ります。 On Error GoTo が効いてErrHandlerに行くときも有るのでよく分かりません。 有識者の方々のもっと良いコードを教えて下さい。 (1つのシートに対してグラフは0~3個です。) Sub シート名グラフ名() Dim mysheet As Worksheet For Each mysheet In Worksheets On Error GoTo ErrHandler With mysheet.ChartObjects(1).Chart .ChartTitle.Text = mysheet.Name End With With mysheet.ChartObjects(2).Chart .ChartTitle.Text = mysheet.Name End With With mysheet.ChartObjects(3).Chart .ChartTitle.Text = mysheet.Name End With ErrHandler: Next mysheet End Sub

  • コモンダイアログエラー

    エクセルのマクロについて質問です。 今エクセルでCommonDialog1を実行しようとしています。 やりたいことは”ファイルを選択するウィンドウを表示”させて”ファイルを開く”です。 マクロを作成しているエクセルは2007で実際に動作させるときに使用するのは2002です。 下記マクロ参照ください。 Private Sub CommandButton1_click() Dim strfilename As String commondialog1.Filename = "" commondialog1.Filter = "CSV Files(*.csv)|*.csv" commondialog1.showopen strfilename = commondialog1.Filename End Sub 実行しようとすると実行エラー424 オブジェクトが必要です とエラーメッセージがでます。(2007で作成、デバック時) common dialog controlの挿入等試してみましたがうまくいきません。 解決策がありましたらご教示願います。 ちなみに、既存のマクロの都合でcommondialogのコマンドを使用して作りたいです。 他にも方法はあるかと思いますが、宜しくお願い致します。

専門家に質問してみよう