次の方法で共有

Excel 2003 で作動していたマクロを Excel 2010 で実行すると処理できない。

Anonymous
2011-09-16T01:16:08+00:00

実行時エラー’75’パス名が無効です。と表示されます。デバック部分の一部を添付いたします。

 'fin = Sheet1.Cells(3, 3)

 'fout = Sheet1.Cells(4, 3)

 'punch = Sheet1.Cells(5, 3)

 'wave = Sheet1.Cells(5, 2)

 aa = Trim$(fin)

 bb = Trim$(fout)

 cc = Trim$(punch)

 'dd = Trim$(wave)

 Open bb For Output As #6      '入力ファイル名の宣言

 Open cc For Output As #7      '入力ファイル名の宣言

 Close #6

 Close #7

 ia = Len(aa)

 ib = Len(bb)

 ic = Len(cc)

 'id = Len(dd)

 '

 '出力ファイルの削除

 '

  Kill (bb)     'foutの削除

  Kill (cc)     'punchの削除

'ファイル名の重ね合わせ

 fname = aa + bb + cc

 id = Len(fname)

 'ファイル名をカレントに保存(:exshake.ini)

 Dim passname As String

  passname = "\exshake.ini"

  Open passname For Output As #8ーーーーーーーーーーここの部分に黄色く塗られますます。

   Print #8, fname

   Close #8

Call main_pro(ia, ib, ic)

MsgBox "計算終了"

Microsoft 365 と Office | Excel | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2011-09-17T02:20:20+00:00

>添付した「\」は、添付前のVBAの記述では「¥」でした。

そういう意味ではありません。

¥は日本語キーボードでそうなるのですが本来はバックスラッシュです。このサイトでは半角で貼りつけると¥が\に表示されているだけです。

私の書いた意味は

 >passname = "\exshake.ini"

はフルパスでキチンと書くかファイル名だけ書く必要があるという意味です。

 passname = "c:\exshake.ini"

または

 passname = "exshake.ini"

つまり¥が余計だと言う意味です。

ファイル名だけ指定した場合はカレントディレクトリに作成されます。

ただ、昨日投稿した時はOffice2010の環境がありませんでしたので試していなかったのですが、

passname = "\exshake.ini"

ではルートディレクトリ(通常はCドライブ直下)にファイルが作成されますね。

Vista+Office2010でもパスエラーはでません。

>指摘のように¥をとって流してみましたが、パスエラーはでなくなりましたが、EXCELシートがすべて消え

Excelシートがすべて消えと言う部分は意味不明です。

テキストファイルの出力とは全く関係がない話だと思いますが、もう少し具体的にお願いします。

余計なところをすべてなくした↓で実験してみてください

Sub xxx()

Dim passname As String

  fname = "xxxxxx"

  passname = "\exshake.ini"

'  passname = "exshake.ini"

'  passname = "c:\exshake.ini"

  Open passname For Output As #8

  Print #8, fname

  Close #8

End Sub

XXXXというのが一行入ったiniファイルが作成されます。

なお、iniファイルなんかをいじっておられるのですから、先刻ご承知と思いますがiniファイルは非表示ファイルですのでフォルダオプションの状態によっては表示されません。

追記:

Win7+Office2010の環境でも試しましたが、passname = "\exshake.ini" でも正常に動き、Cドライブにファイルが作成されますね。

なお、回答マークを打たれておられますが、回答マークは片付いてから打ってください。

私はフォローしていますが、回答マークが打たれているスレッドは、済んだ話として見てくれる方が減る可能性があります。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

3 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2011-09-27T02:28:18+00:00

    y sakuda さん、アドバイスありがとうございます。

    tesa1949 さん、こんにちは。 その後、いかがでしょうか。

    よろしければ y sakuda さんからいただいたサンプルコードなどで試してみてくださいね。

    同じような問題でお悩みの方にも問題の確認点としてご参考になるよう \[回答としてマーク\] をいたしました。

    もちろんマーク後も返信は出来ますので、続けて質問がある場合はご遠慮なく投稿を続けてください。

    試した結果なども引き続きお待ちしていますね。

    今後も Answers をよろしくお願いします。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2011-09-17T01:42:18+00:00

    y sakuda様へ

    ご回答ありがとうございました。

    添付した「\」は、添付前のVBAの記述では「¥」でした。まさか化けるとは思わなかったので確認をしませんでした。

    passname = "\exshake.ini"ーーーー添付する前   passname = "¥exshake.ini"でした。

    指摘のように¥をとって流してみましたが、パスエラーはでなくなりましたが、EXCELシートがすべて消え passname = "\exshake.ini"もルートデレクトリーには作成されていませんでした。

    TESA1949

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2011-09-16T07:42:43+00:00

    >passname = "\exshake.ini"

    このファイル名の指定が間違っているためと思います。

    passname = "exshake.ini"

    としてください。

    Excel2010では試してませんが、古いExcelだとエラーにはなりませんが、こちらでもファイルは作成されないようです。

    Excel2010の方がちゃんとエラーを引っ掛けているだけのように思います。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません