Access VBA質問箱 IV

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

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


2271 / 9994 ←次へ | 前へ→

【11000】Re:訂正:字数(Byte数)制限?
回答  小僧  - 09/2/12(木) 18:55 -

引用なし
パスワード
   ▼よっぴ さん:
こんにちは。

> なぜか『8188』Byte以上になるとそれ以降が削除されます。

こちらでも事象が再現しました。
(WinVista, Access2003)


> (スペック)
> WinXP
> Access2003

上記の環境に依存して良いのであれば、
Office付随の FileDialog オブジェクトを使うのが楽そうですね。

Sub Sample2()
'※要参照 Microsoft Office 11.0 Object Library
Dim objFD As FileDialog
Dim varItem As Variant
Dim buf As Variant
Dim aryFileName As Variant

  Set objFD = Application.FileDialog(msoFileDialogFilePicker)

  With objFD
    .Title = "データインポート"
    .Filters.Clear
    .Filters.Add "Excelファイル(*.xls)", "*.xls"
    .Filters.Add "すべてのファイル", "*.*"
    .FilterIndex = 1
    .InitialView = msoFileDialogViewDetails
    .InitialFileName = CurrentProject.Path
    .AllowMultiSelect = True

    If .Show = -1 Then
      For Each varItem In .SelectedItems
        buf = buf & "," & varItem
      Next varItem
    Else
      Exit Sub
    End If
  End With

  aryFileName = Split(Mid(buf, 2), ",")

  Set objFD = Nothing

End Sub


8188 という数値が 2047 * 4 であり
何かの制限に引っかかってそうだと思われますが、
WizHook に関しては非公開なクラスの為
Microfost のサイトを見てもヘルプや技術情報がありません。

WizHook を使わなければいけない理由が特にないのでしたら
他方法を使う事をおすすめします。

Ac2000 が混在環境で存在してしまうのであれば
API関数 の GetOpenFileNameA あたりをWeb検索されてみて下さい。

1,237 hits

【10998】字数(Byte数)制限? よっぴ 09/2/12(木) 13:02 質問[未読]
【10999】訂正:字数(Byte数)制限? よっぴ 09/2/12(木) 14:43 質問[未読]
【11000】Re:訂正:字数(Byte数)制限? 小僧 09/2/12(木) 18:55 回答[未読]
【11001】Re:訂正:字数(Byte数)制限? よっぴ 09/2/13(金) 11:34 お礼[未読]

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