次の方法で共有

VBAユーザーフォームに添付ファイルを埋め込むことはできるでしょうか

Anonymous
2023-01-27T23:53:32+00:00

VBA初心者です。テキストまたはコンボボックスから入力→「登録」ボタンで確定するような、入力用のウィンドウ(ユーザーフォーム)を作製しました。

この中に、関連するファイル(Excel,PDF…)を添付/閲覧できるようにしたいと思っています。

理想は『ユーザーフォーム内の所定の箇所をクリックすると、そこにファイルが貼り付けられ、また、そのファイルをクリックすると内容が開ける』ようなイメージです。

プログラミング知識がないため、初心者向けにご対応いただけますと幸いです。

宜しくお願い致します。

Microsoft 365 と Office | Excel | ビジネス向け | Windows

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

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

6 件の回答

並べ替え方法: 最も役に立つ
  1. simo-k 85,320 評価のポイント ボランティア モデレーター
    2023-02-02T13:34:06+00:00

    上に掲載したサンプルは、ファイル名を代入せず処理しているから分からなかったのかな?

    大まかな流れをどうしようとしているか分からないので適当です。

    ' ファイル選択ボタン

    ' ボタン名称は適当。

    Private Sub CommandButton1_Click()

    Call Sample2 
    

    End Sub

    Sub Sample2()

    Dim FSO As Object 
    
    Dim SelectedFile As String 
    
    With Application.FileDialog(msoFileDialogOpen) 
    
        .Filters.Clear 
    
        ' .Filters.Add "Excel2003", "\*.xls" 
    
        ' .Filters.Add "Excelファイル", "\*.xlsx" 
    
        ' .Filters.Add "Excelマクロ有効", "\*.xlsm" 
    
        ' 扱いたいファイル種別を一括指定してプルダウンでの切り替えを無くした。 
    
        .Filters.Add "選択**", "\*.docx,\*. xlsx,\*.pptx,\*.pdf" 
    
        .InitialFileName = "G:\download"    ' 初期表示フォルダ 
    
        .AllowMultiSelect = False           ' ファイル1個だけ選択可 
    
        If .Show = True Then 
    
            ' Excelファイル以外では.Executeしても意味ないのでコメント化 
    
            ' .Execute 
    
            ' 選択したファイル名を取得 
    
            SelectedFile = .SelectedItems(1) 
    
            ' フォームのテキストボックスへも転記? 
    
            TextBox1.Value = SelectedFile 
    
            ' ファイルを開く 
    
            ' 別ボタンで動作させる場合はこのセクションを移動。 
    
            ' (対象ファイル名は、TextBox1.Value 又は SelectedFileをグローバル変数にして所得 
    
            Set FSO = CreateObject("Shell.Application") 
    
            With FSO 
    
                .ShellExecute SelectedFile 
    
            End With 
    
            Set FSO = Nothing   ' オブジェクトの開放 
    
        Else 
    
            Debug.Print "選択しなかった。" 
    
        End If 
    
    End With 
    

    End Sub

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

    0 件のコメント コメントはありません
  2. Anonymous
    2023-02-01T05:03:29+00:00

    ファイル選択までできたらほとんどできたも同然な気がしますが、どこまで書けたのか、実際のコード(標準モジュールとフォームモジュールの)を提示してもらった方がわかりやすいかと思います。

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

    0 件のコメント コメントはありません
  3. Anonymous
    2023-01-29T01:40:19+00:00

    複数アドバイスをいただき、有難うございます。

    仰る通り、後者はさらに高度と思われ、前出の1件目から『サンプル2:部分一致で開く方法』にチャレンジしたのですが、「コマンドボタンからカレントフォルダを呼び出し、ファイルを選択」するところまでは成功したのですが、私の知識ではその後の処理が上手く出来ませんでした。。

    そこで、これらをヒントに、ファイルのパスコードをコピーし、ユーザーフォームのテキスト内に、(コマンドボタンも使用せず)直接ハイパーリンクを貼り付けることで代用したいと考えました。

    これならもう少し単純な方法で出来るのではないかと思ったものの、こちらも知識不足で自己解決には至りませんでした。

    どうか、以下の方法を教えていただけないでしょうか…。

    1.ユーザーフォームのテキストボックス(ここでは”txtファイル”)に、ファイルのハイパーリンクを貼り付ける

    2.コマンドボタン(ここでは”btn登録”)を押下後、当該セル(ここでは”W”列)に反映させる

    期待する結果として、入力用フォーム(ユーザーフォーム)のテキストボックスまたはシートのセルからハイパーリンクでファイルを開くことができればと思っております。

    長文失礼しました。

    何卒、もうひと手順について、ご協力のほど宜しくお願い致します。

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

    0 件のコメント コメントはありません
  4. simo-k 85,320 評価のポイント ボランティア モデレーター
    2023-01-28T11:14:11+00:00

    難易度を上げるなら、ドラッグ&ドロップでファイル指定は可能です。

     ドラッグ&ドロップでファイル名を受ける

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

    0 件のコメント コメントはありません
  5. simo-k 85,320 評価のポイント ボランティア モデレーター
    2023-01-28T04:21:28+00:00

    手元にあるのは、ファイル又はフォルダを選択する画面です。
    "ファイル"ボタン押下で、FileDialogを起動して利用者にファイルなど選択させる。
    そして、その結果をテキストボックスに表示させています。
    指定したファイルをShellで起動すればアプリで開ける筈です。
      画像

    下記などを参考にされたら如何でしょうか?

      ファイルダイアログ(FileDialog)
      VBAでPDFファイルを開く方法とは?

    ※ 上記は、添付という意味合いでは無く、ファイルの場所をフォーム内で取り扱うものです。

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

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