
VS2012のVBでコードを書きはじめました。OSはWin7(x32) 日本語です。
ファイルを呼び出そうと思っても呼べずに困っています。
FileName = "c:\textfile.txt"
ret = LoadFile(FileName)
としたときに、”textfile.txt“にアクセスできないのは、デバッグモードで実行したときに”\”がバックスラッシュとして扱われているからではないかと疑っています。
原因を探っていくうちに下記を疑い始めました。
Dim FileName As String
FileName = "\"
として、デバッグモードでFileNameの値を見ると円マークではなくバックスラッシュになっています。
しかし、FileNameの値をテキストボックスに出力させると円マークです。
(1)このような状態でもパス名に問題は無いのでしょうか
⇒どちらも同じASCIIコード92だから、内部で92を渡すだけだから問題ない?
(2)Visual studio内でキーボードを選択する部分があるのでしょうか?
No.5ベストアンサー
- 回答日時:
> 3台のPCで試してみました
いやだから円マークとバックスラッシュは無関係だって。
デスクトップ等へアクセスする際のパスが間違っている。
またはアクセス権の問題。
プログラムを実行しているユーザーではなく、同じ PC 内の他人のデスクトップへアクセスしようとしているんじゃなければ、私は限りなく前者だと思っている。
Windows 7 環境で動かないっていうケースで、実際にどんなパスでためしているのでしょうか。
プログラムの中に直接パスを記述しているのでしょうか。
一般的に特殊フォルダーへアクセスする際は下記のような手法でパスを組み立てます。
http://dobon.net/vb/dotnet/file/getfolderpath.html
何度もすみません。バックスラッシュの件ありがとうございます。おっしゃるとおりでした。
おっしゃるとおりアクセス権を疑っていますが、ファイル側にも現在ログインしているユーザーのアカウントでアクセス権はありますし、ためしにアドミニを有効にしてログインしなおしてみましたがやはりダメでした。
パス名は試しに直接打ち込んで見ましたがやはりダメです。
FileName = "C:\Users\(ユーザー名)\Desktop\Child\(ファイル名)"
リンク先にあった関数で取得してみても、デバッグモードで"FileName"の値を見る限り同じパス名になりますが、やはりファイルにアクセスできません。
FileName = System.Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)
FileName = FileName + "\Child\(ファイル名)"
ずっとXPでアクセス権なんて考えずにやってきたので、何が分かっていないのかも分かっていないみたいです。
No.4
- 回答日時:
> 実際にはファイルの場所はデスクトップです。
デスクトップの場所は、WindowsXPとWindows7で異なりますが、その点は影響ありませんか?
ちなみに、回答3はVBでは関係ないです。
この回答への補足
3台のPCで試してみました
VS2012ProのVB@Win7(x32)
FileNameのテキスト出力:\は\
FileNameのデバッグモードでの値確認:\はバックスラッシュ
×ファイルが読めない
VS2008ExpressのVB@Win7(x64)
FileNameのテキスト出力:\は\
FileNameのデバッグモードでの値確認:\は\
×ファイルが読めない
VS2008ProのVB@WinXP(x32)
FileNameのテキスト出力:\は\
FileNameのデバッグモードでの値確認:\は\
○ファイルは読める
やはりOSのせいかなという感じです。
再度ご回答ありがとうございます。パス名はフルパスを直接打ち込んでも試しています。XPでは”デスクトップ”というのが2バイト文字なので文字数のカウントで問題になってMyDocumentsに移しましたが、Win7では”desktop”なので問題ないはずで。アクセス権の問題化と思ってWin7では”desktop”やdocumentsなどいろいろな場所にファイルをおいてみましたがうまくいきません。
でもたぶんWin7というOSに関係する何かだと思って調べています。
No.3
- 回答日時:
エスケープシーケンス
文字列中にバックスラッシュを入れたいときは\を2つ続けます
FileName = "c:\\textfile.txt"
Visual Studioだからということではありません
No.1
- 回答日時:
U+005CがREVERSE SOLIDUSで表示されるか,U+00A5の如くYEN SIGNで表示されるかは,単にフォントの問題です。
私はConsolasをテキストエディタのフォントに指定しているので,U+005CはREVERSE SOLIDUSで表示されます。
ファイルにアクセスできないのであれば,通常IOExceptionが発生すると思いますが,例外のメッセージなどは出ていないのですか。
ご回答ありがとうございます。
例外というか、ファイルを読み込む関数をdllから呼んでいるのですが、そいつが"-1"(読めませんでした)という値を返してきます。それ以上の理由がわかりません。
ちなみに同じコードをVB2008@WinXP(x32)で動かしたら問題なく動きます。そちらでは¥は常に¥で表示されます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Excel(エクセル) 【マクロ】ファイル名の日付によって、保管するフォルダを、自動選択したい 4 2023/08/16 11:24
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Excel(エクセル) 【VBA】PDF出力に任意のファイル名前を付ける方法 3 2023/07/21 10:55
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
エクセルVBAで一つ上の階層...
-
xcopyコマンドの進行状況を表示...
-
ファイル移動
-
コマンドプロンプトのコピー関...
-
VBS パスに変数を入れたい
-
初心者powershellのPS1ファイル...
-
バッチファイルについて・・・
-
Excel 相対パス
-
フォルダ ショートカット
-
VBA★PDFをPDFアプリで印刷し...
-
VBAで今日の日付のフォルダを作...
-
dos窓での実行
-
エクセルのファイルオープン時...
-
C++でネットワークパスのファイ...
-
環境変数の設定について...
-
VBAでパワーシェルを実行したい...
-
【VBA】ExcelマクロでCSVファイ...
-
EXCEL(VBA)で指定フォルダ内の...
-
エクセルのマクロで特定フォル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
エクセルVBAで一つ上の階層...
-
xcopyコマンドの進行状況を表示...
-
Excel 相対パス
-
【VB.NET】App.configにファイ...
-
【VBA】ExcelマクロでCSVファイ...
-
エクセルのマクロで特定フォル...
-
実行ファイルのパスを取得したい
-
コマンドプロンプトのコピー関...
-
VBA★PDFをPDFアプリで印刷し...
-
VBAでパワーシェルを実行したい...
-
ExcelVBAの使い方 ¥の使い方...
-
C#でのProcess.Startと変数path
-
ExcelのVBAで上書き保存を確...
-
開いているファイルを削除し、...
-
アプリケーションのインストー...
-
【VBA】複数のtxtファイルから...
-
EXCEL(VBA)で指定フォルダ内の...
-
fopenでのパス指定
-
パスワード保護されたExcelファ...
おすすめ情報