質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

解決済

for文で取得したパスがどこにあるのかわからない件について

s.s.s.s.
s.s.s.s.

総合スコア3

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

1回答

0評価

0クリップ

211閲覧

投稿2022/05/23 15:43

編集2022/05/24 09:46

初めまして。プログラミング初心者です。
現在VBAを使ってあるプログラムを作成しています。

【実行したい処理】
以下のfor文で、ファイルのパスを取得したい。

【現状】
if文内にMsgBoxを入力し、FilePath(i)と入力すればパスがきちんと表示される。
しかし、For文を抜けた(Nextの後ろ)にMsgBoxを記述すると中身が表示されない。
(メッセージボックスが1度表示され、ブランクの状態)

このコードの後ろに、ここで取得したパスのファイルを開くというプログラムを
追加したいのですが、パスが取得できていない(正しく表示されない)ため
次に進めません。どうしたらいいのか教えてください。よろしくお願いします。

Dim FilePath As Variant ReDim FilePath(1 To 200) '指定フォルダ内の.txtファイルを探索します i = 0 For Each File In FSO.GetFolder(Fname).Files If InStr(File.Name, "sh") > 0 Then i = i + 1 Else If InStr(File.Name, ".log") > 0 Then i = i + 1 FilePath(i) = File.path 'ファイルのフルパスを取得 'MsgBox FilePath(i) 4件のパスが正常に表示されることを確認 End If End If Next

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

y_waiwai

2022/05/23 22:11

その、表示されないというコードも含めて、提示しましょう
gU8C8Nud4E8p3uW

2022/05/24 00:31 編集

iをカウントアップ(+1する)ことの意味って、なんなんでしょうね? +1することと、FilePath(i) = File.path が直接連動していない場面があるのが、どうしても気になってしまう。そもそも、このコードは何を目的にして書いていて、FilePathなる配列にどういうふうにデータを詰めることを期待しているのでしょうか? そこがわかっていないから、曖昧なコードになっているのではないでしょうか? 仕様を正しく解釈してコードを書かないと。
s.s.s.s.

2022/05/24 00:46

すみません。初めて書いたコードなので無駄が多くあいまいなコードになってしまっていますよね。 何をしたいのかを明確にしたうえでどのような結果を期待するのかをしっかり考えて プログラムを作成できるよう今後はより一層頑張ってまいります。 コメントいただきありがとうございました。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。