[[20250305165913]] 『Title部分が長いので2行に分けて表示したい』(プレーン) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『Title部分が長いので2行に分けて表示したい』(プレーン)

以下のようなコードを利用していますが
Title部分が長いので2行に分けて表示したいのですが
単純に msgboxのように「& vbCrLf & 」で2行に分けてもダメでした。

コードをどうのように変更したらいいですか ?

 ' フォルダ選択ダイアログを表示
      With Application.FileDialog(msoFileDialogFolderPicker)
            .Title = "A列にターゲットのListを配置するのでテキストファイルが含まれるフォルダーを選択してください"
            .AllowMultiSelect = False
            If .Show = -1 Then
                  folderPath = .SelectedItems(1)
            Else
                  MsgBox "フォルダーが選択されませんでした。", vbExclamation
                  Exit Sub
            End If
      End With

< 使用 アプリ:Excel2024、使用 OS:Windows11 >


 根本的な解決方法ではないですが、とりあえずの代替案
 です。

 Sub fsentaku()
  Dim obj As Object
  Dim myObj As Object
   Set obj = CreateObject("Shell.Application")
   Set myObj = obj.BrowseForFolder(0, "選択して下さい。" & vbCrLf & "複数可", 0)
   Err.Clear
   On Error Resume Next
   MsgBox myObj.Items.Item.Path
   If Err.Number <> 0 Then MsgBox "キャンセル"
   On Error GoTo 0
 End Sub

(OK) 2025/03/05(水) 17:30:40


 ↑で「複数可」と書いてますが、このコードでフォルダを
 複数選択できる、ということではありません。
(OK) 2025/03/05(水) 17:33:21

 回答ではなく感想 ^^;

 「A列にターゲットのListを配置するので」という情報は、
 FileDialogを開く前にユーザーが既に認識してる状況である方が操作が自然に流れる思います。
 そのつもりで事前(おそらくマクロ実行よりも前)に別の方法で表示した方がいいんじゃないかなと。
 (ダイアログウインドウ出てから言われても「はいはい分かってますよ〜」ってなるくらいを目指すってこと)

 ていうのと、
 ダイアログウインドウのタイトルバーなんて大半の人は読まないですよたぶん。^^;
 操作説明っぽい事を書いても効果は期待出来ないと思いますよ。

 通常は「何のダイアログなのか」だけ端的に表明できれば事足りるのではないでしょうか。
    .Title = "フォルダを選択してください"
    .Title = "フォルダの選択"

 ちょっと説明を長めに書くとしてもせいぜい
    .Title = "テキストファイルが含まれるフォルダを選択してください"
                                                                      とか...
 って思いました。

(白茶) 2025/03/05(水) 17:51:50


OKさん、白茶さん アドバイス感謝します。

代替え案が出ましたが
ExcelのFileDialogのTitleプロパティは、単一行の文字列しか受け付け無いのですね。

  自分の為のVBAで他の人に使わせる目的では無いのですが
  月日が経つと当該マクロの使用法をすっかり忘れてします事がままあります。

.Title =を表示する前に
MSGBOXで2行に渡る説明的な表示を出すことにしました。

  お探せしました。

(プレーン) 2025/03/05(水) 18:32:23


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.