No.2
- 回答日時:
おそらく先答者の言われる通り 実行ファイルまでのパスが合っていないのではないでしょうか?
このプログラムがどう言った趣旨のものかわかりませんが、任意でパスを通すのであればダイアログから取得するAPIを使ってみてはいかがですかこれだとまず間違いなく当エラーは回避出来るはずですが・・・。
この回答への補足
ありがとうございます。
>ダイアログから取得するAPIを使ってみてはいかがですか
すみません、意味がわかりません。(・_・、)
もう少し具体的に、教えて下さい。
No.3
- 回答日時:
こんにちは。
プログラマで6年程勤務した者です。
ご参考程度でありますが、情報を提供します。
質問内容として、以下でよろしいのでしょうか?
・インストールFDを作成し、VB4が入っていない
PCにインストールを行う。
だとすると、DAO等のVBで使用するファイルを
新規のPCにレジストリ登録しなければ、
このようなエラーが出たような気がします。
あと、参考になるかわかりませんが、URLを添付します。
参考URL:http://www1.harenet.ne.jp/~unaap/
No.4ベストアンサー
- 回答日時:
#2の補足ですが、参考になるかどうか自信はありません f(^_^)
APIからのフォルダ参照によるフルパス取得です。
下記コードを御参考下さい。VB精通者から見ると ”なんじゃこりゃ” ってなお粗末なコードですがご勘弁下さい m(_ _)m
また、毎回指定を回避するには指定内容をレジストリに記録するか設定ファイル(iniファイル)に記録して参照する方法があります、いずれもやはりAPI使用により可能です。
お勧めは後者(設定ファイル作成方法)です・・・理由>>不必要になった場合レジストリにゴミを残さない為です。(レジストリ内容も削除はできますが)
レスが長くなりましたが参考になれば幸いです。
'API宣言
Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long
Private Const MaxP = 260
Private Type yochi
Own As Long
Roo As Long
Nam As String
Tit As String
End Type
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal PointerToIdList As Long, ByVal pszPath As String) As Long
Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpBROWSEINFO As yochi) As Long
Private Declare Function CoTaskMemFree Lib "ole32.dll" (ByVal pv As Long) As Long
Dim Z As Integer
'------------------------------------------------------------------------------------------------
Sub Folder()
'フォルダの選択
Dim Path As String
Dim Hw As Long
Dim Ro As Long
Dim Dr As String
Z = 0
Dr = "フォルダを指定して下さい."
Ro = GetFo(Hw, Dr, Path)
If Ro = 0 Then
If Z = 1 Then
MsgBox "このフォルダは指定出来ません。"
Exit Sub
End If
MsgBox Path
ElseIf Ro = 1 Then
End 'Exit Sub
End If
End Sub
'------------------------------------------------------------------------------------------
Private Function GetFo(ByVal Hw As Long, ByVal Msg As String, ByRef Path As String) As Long
Dim bi As yochi
Dim pidl As Long
Dim iRo As Long
On Error GoTo ErrorHandler
bi.Tit = Msg
pidl = SHBrowseForFolder(bi)
If pidl = 0 Then
Exit Function
End If
Path = String$(MaxP + 1, Chr$(0))
If SHGetPathFromIDList(ByVal pidl, ByVal Path) = 0 Then
iRo = CoTaskMemFree(pidl)
Z = 1
Exit Function
End If
Path = Left(Path, InStr(Path, Chr$(0)) - 1)
iRo = CoTaskMemFree(pidl)
If iRo <> 0 Then
End If
Exit Function
ErrorHandler:
If pidl <> 0 Then CoTaskMemFree pidl
End Function
長い長いコードをありがとうございます。
訳のわからない質問に、こんなに時間を掛けて・・・
敬意を表します。
一行一行勉強します。
自分が情けない(・_・、)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでの共有パスにつきまして
-
エクセルのマクロで特定フォル...
-
VBS パスに変数を入れたい
-
1行単位のデータをテキストファ...
-
EXCEL(VBA)で指定フォルダ内の...
-
Shell関数内で変数を使うことに...
-
実行ファイルのパスを取得したい
-
C++でネットワークパスのファイ...
-
エクセルVBAで複数の変数に、パ...
-
エクセルのファイルオープン時...
-
エクセルマクロでファイル名の...
-
エクセルVBAで一つ上の階層...
-
AccessからExcel最小化
-
Cの関数で自分自身のパス取得
-
C言語でフルパスのファイル読み...
-
VB.NETでのiniファイル読込につ...
-
file://について
-
Eclipse
-
ファイルのアクセス回数について
-
エクセルで複数のコメントのサ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
Excel 相対パス
-
エクセルVBAで一つ上の階層...
-
エクセルのマクロで特定フォル...
-
xcopyコマンドの進行状況を表示...
-
ExcelVBAの使い方 ¥の使い方...
-
EXCEL(VBA)で指定フォルダ内の...
-
【VBA】ExcelマクロでCSVファイ...
-
【VB.NET】App.configにファイ...
-
VBA★PDFをPDFアプリで印刷し...
-
ExcelのVBAで上書き保存を確...
-
VBAでパワーシェルを実行したい...
-
SaveAsの保存先について
-
outlook開けない
-
Eclipse
-
C#でのProcess.Startと変数path
-
開いているファイルを削除し、...
-
A列に記載されているフォルダ...
-
コマンドプロンプトのコピー関...
-
【VBA】複数のtxtファイルから...
おすすめ情報