Excel VBA質問箱 IV

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

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


8939 / 13646 ツリー ←次へ | 前へ→

【30238】セルへの表示について。 Tetsuo 05/10/23(日) 16:06 質問[未読]
【30239】Re:セルへの表示について。 かみちゃん 05/10/23(日) 16:16 回答[未読]
【30240】Re:セルへの表示について。 かみちゃん 05/10/23(日) 16:24 回答[未読]
【30242】Re:セルへの表示について。 Tetsuo 05/10/23(日) 20:04 お礼[未読]

【30238】セルへの表示について。
質問  Tetsuo  - 05/10/23(日) 16:06 -

引用なし
パスワード
   初めまして。Tetsuoと申します。

現在作成しているツールで、GetOpenFilenameを使い、複数のcsvファイルを選択した後に、Cells(1, 1)にそのファイルパスを一覧で表示したいのですが上手くいきません。

詳細を以下に書きます。

Sub FileOpen()

Dim MyF As Variant

  With Application
   MyF = .GetOpenFilename("CSVファィル(*.csv),*.csv", , , , True)
  End With

End Sub

以上のコードを実行し、C:\に入っている aaa.csv と bbb.csv を選択したとします。
そして、Cells(1, 1)にそのファイルパスを、

-------------------
| C:\aaa.csvC:\bbb.csv |
-------------------

では無く、

-----------
| C:\aaa.csv |
| C:\bbb.csv |
-----------

と表示させようとするのですが、上手くいきません。
Variantに格納されている、配列を上記のように表示するのは不可能なのでしょうか?
初歩的な質問で申し訳ないのですが、どなたか回答の方よろしくお願いいたします。

【30239】Re:セルへの表示について。
回答  かみちゃん  - 05/10/23(日) 16:16 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>現在作成しているツールで、GetOpenFilenameを使い、複数のcsvファイルを選択した後に、Cells(1, 1)にそのファイルパスを一覧で表示したいのですが上手くいきません。

Cells(1, 1)のひとつのセルに書き込むのですか?
それとも、Cells(1, 1)のセルを開始として、下方向のセルに書き込むのでしょうか?
以下のコードは、下方向に書き込むコードです。
  Cells(1, 1).Resize(UBound(MyF)) = Application.Transpose(MyF)
ひとつのセルに書き込むならば、別の方法になります。

【30240】Re:セルへの表示について。
回答  かみちゃん  - 05/10/23(日) 16:24 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>ひとつのセルに書き込むならば、別の方法になります。

ちなみに以下の方法でできます。
 Dim i As Integer
 With Cells(1, 1)
  .ClearContents
  For i = 1 To UBound(MyF)
   If .Value = "" Then
    .Value = MyF(i)
   Else
    .Value = .Value & vbCrLf & MyF(i)
   End If
  Next
 End With

【30242】Re:セルへの表示について。
お礼  Tetsuo  - 05/10/23(日) 20:04 -

引用なし
パスワード
   ▼かみちゃん さん:
>こんにちは。かみちゃん です。
>
>>ひとつのセルに書き込むならば、別の方法になります。
>
>ちなみに以下の方法でできます。
> Dim i As Integer
> With Cells(1, 1)
>  .ClearContents
>  For i = 1 To UBound(MyF)
>   If .Value = "" Then
>    .Value = MyF(i)
>   Else
>    .Value = .Value & vbCrLf & MyF(i)
>   End If
>  Next
> End With

できました!なるほど!vbCrLfで改行するんですね!
早い返答ありがとうございました。
こんな初歩的な質問に答えていただいて感謝です!
もっと勉強します!

8939 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free