Excel VBA質問箱 IV

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

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


54185 / 76732 ←次へ | 前へ→

【27346】Re:コードを整理して見ました
回答  Hirofumi  - 05/8/5(金) 22:36 -

引用なし
パスワード
   >どうしても下記の部分がデバッグで表示されます。
>何が考えられるでしょうか
>
>'セル値が数値として入力されている場合
>lngFound = DataSearch(CLng(vntDate), rngScope, lngOver)

Excel2003で検証し、此れの原因が解りました
当方、Excel97でこのコードを作成していますが
其れ以降のExcelのVar.で、Variant型配列の扱いが少し違う様です
以下を修正して下さい

現状のコード

    '「20050731」形式の日付をシリアル値に変換
    vntField(0) = DateValue(Left(vntField(0), 4) _
                & "/" & Mid(vntField(0), 5, 2) _
                & "/" & Right(vntField(0), 2))

修正後のコード

    '「20050731」形式の日付をシリアル値に変換
    vntField(0) = CLng(DateValue(Left(vntField(0), 4) _
                & "/" & Mid(vntField(0), 5, 2) _
                & "/" & Right(vntField(0), 2)))

尚、mimiさんが、修正している以下の部分も修正方法が違うので
再修正して下さい(特に問題は無さそうですが?)

1、「Dim fileToOpen As Variant」使っていない変数を宣言する必要が無いのでこの行不要

2、以下のFunctionの修正は不要、汎用性が無くなるので元のままの方が善いと思います

Private Function GetReadFile(vntFileNames As Variant, _
            Optional strFilePath As String, _
            Optional blnMultiSel As Boolean _
                    = False) As Boolean

  Dim strFilter As String

    ChDrive "C"            '修正しました
    ChDir "\Program Files\"
  'フィルタ文字列を作成
  strFilter = "テキスト ファイル (*.txt), *.txt"

  'もし、ディフォルトのファイル名が有る場合
  If vntFileNames <> "" Then
    SendKeys vntFileNames & "{TAB}", False
  End If
  '「ファイルを開く」ダイアログを表示
  vntFileNames _
    = Application.GetOpenFilename(strFilter, 2, , , blnMultiSel)
  If VarType(vntFileNames) = vbBoolean Then
    Exit Function
  End If

  GetReadFile = True

End Function

尚、この部分の修正方法が有りますので下に書いて置きます
以下を修正して下さい

  Dim strProm As String
'Dim fileToOpen As Variant '☆不要

  'Textファイルの有るフォルダを指定
'  strPath = ThisWorkbook.Path '★この行変更
  strPath = "C:\Program Files"

尚、ここに書きませんでしたが、

  'Textファイルの有るフォルダを指定
  strPath = "C:\Program Files"

  'Defaultのファイル名を指定する場合
  vntFileName = "Test" '◎追加しても可

  '「ファイルを開く」ダイアログを表示
  If Not GetReadFile(vntFileName, strPath, False) Then
    strProm = "マクロがキャンセルされました"
    GoTo WayOut
  End If

とすれば、「ファイルを開くダイアログ」の「ファイル名」Boxに「Test」と
表示され、"C:\Program Files"の中で、Testが頭に付くファイルだけ表示されます
ワイルドカードも使えると思います
1 hits

【27171】日付列を取得し、CSVデータを挿入について mimi 05/8/1(月) 1:28 質問
【27174】Re:日付列を取得し、CSVデータを挿入につ... だるま 05/8/1(月) 8:16 回答
【27178】Re:日付列を取得し、CSVデータを挿入につ... mimi 05/8/1(月) 10:15 発言
【27193】Re:日付列を取得し、CSVデータを挿入につ... だるま 05/8/1(月) 15:03 発言
【27196】Re:日付列を取得し、CSVデータを挿入につ... だるま 05/8/1(月) 15:23 回答
【27182】CSVデータの構造について m2m10 05/8/1(月) 11:34 お礼
【27187】Re:CSVデータの構造について mimi 05/8/1(月) 12:49 発言
【27195】Re:日付列を取得し、CSVデータを挿入につい... m2m10 05/8/1(月) 15:21 回答
【27205】Re:日付列を取得し、CSVデータを挿入につい... m2m10 05/8/1(月) 17:35 回答
【27209】Re:日付列を取得し、CSVデータを挿入につい... mimi 05/8/1(月) 22:12 質問
【27214】日付を探索 をする際に m2m10 05/8/2(火) 7:57 回答
【27264】Re:日付列を取得し、CSVデータを挿入につい... Hirofumi 05/8/3(水) 21:11 回答
【27266】Re:日付列を取得し、CSVデータを挿入につい... Hirofumi 05/8/3(水) 21:46 回答
【27268】Re:日付列を取得し、CSVデータを挿入につい... Hirofumi 05/8/3(水) 23:10 回答
【27307】Re:日付列を取得し、CSVデータを挿入につい... mimi 05/8/4(木) 19:30 質問
【27308】Re:日付列を取得し、CSVデータを挿入につい... Hirofumi 05/8/4(木) 20:10 回答
【27309】Re:日付列を取得し、CSVデータを挿入につい... Hirofumi 05/8/4(木) 20:13 回答
【27310】コードを整理して見ました Hirofumi 05/8/4(木) 21:40 回答
【27341】Re:コードを整理して見ました mimi 05/8/5(金) 19:57 質問
【27346】Re:コードを整理して見ました Hirofumi 05/8/5(金) 22:36 回答
【27348】Re:コードを整理して見ました mimi 05/8/5(金) 23:17 質問
【27349】Re:コードを整理して見ました Hirofumi 05/8/5(金) 23:57 回答
【27351】Re:コードを整理して見ました mimi 05/8/6(土) 1:29 お礼
【27352】Re:コードを整理して見ました Hirofumi 05/8/6(土) 5:59 発言
【27353】書き忘れた事がもう1点有りました Hirofumi 05/8/6(土) 7:40 発言
【27354】Re:書き忘れた事がもう1点有りました mimi 05/8/6(土) 12:37 質問
【27369】変更したコード Hirofumi 05/8/6(土) 16:35 回答
【27370】Re:変更したコード mimi 05/8/6(土) 19:02 お礼

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