
エクセルで表がありそのセルにはエクセルのファイル名とワードのファイル名が一覧されています。そこでVBAにてダブルクリックしたらそのエクセルかワードのファイルを開くというマクロを組みたいんですがどうやったら一つの表でエクセルもワードも開けますか?例えばA~E列がワードの一覧でF~Jまでがエクセルの一覧のような表です。以下に試したプログラムがありますが片方しか開けません。
Private Sub Worksheet_BeforeDoubleClick(ByVal target As Range, Cancel As Boolean)
If target.Row > 2 And target.Column < ActiveSheet.UsedRange.Columns.Count + 1 Then
If target.Value = Empty Then
MsgBox "データがありません", vbInformation
ActiveSheet.Range("a1").Select
Else
Workbooks.Open ("C:\sample\" & target.Value)
End If
End If
End Sub
↑これだとワードファイルが開けません。
Private Sub Worksheet_BeforeDoubleClick(ByVal target As Range, Cancel As Boolean)
Set Myword = CreateObject("word.application")
Myword.Visible = True
Myword.Documents.Open Filename:="C:\sample\" & target.Value
End Sub
↑これだとエクセルファイルが開けません。
どのようなプログラムを組めばエクセルとワードを開けますでしょうか?appactivateステートメントとか使えばできますか?何の関数を使ったらいいか分かりませんどなたかご教授ください。
No.3ベストアンサー
- 回答日時:
>Set Myword = CreateObject("word.application")
今回の質問のケースのような時に、オートメーションを使ったら「まずい」と思うのですが……。理由はないのですが、気をつけないとタスクに残してしまい兼ねません。
ハイパーリンクというのはグローバルだから、それで解決するという手も、一興だけど、私は、以下のような方法を実行しています。ただし、問題点は、Win98 では動かないはすです。
拡張子を実行プログラムに関連付けしているものに限りますが、複数の拡張子がある場合は、こんな風にします。当然、pdf でも、txt でも、jpg でも可能です。
以下をみて工夫してみてください。
'//
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'以下は必ず、¥を末尾に入れてください。
Const mPATH As String = "C:\sample\"
Dim Fn As String
Cancel = True
If Target.Row = 1 Then Exit Sub
If Target.Value = "" Then MsgBox "データがありません", vbExclamation: Exit Sub
Fn = mPATH & Target.Value
If Dir(Fn) = "" Then MsgBox "ファイルがありません。", vbExclamation: Exit Sub
shtPath = CreateObject("Scripting.FileSystemObject").GetFile(Fn).ShortPath
Fn = shtPath
With CreateObject("Wscript.Shell")
.Run "" & Fn & "", 3
End With
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで少数点を切り捨て...
-
エクセルで表がありそのセルに...
-
VBAで、貼り付け禁止命令を実現...
-
データが入力されている隣のセ...
-
VBA セルに合わせて移動するが...
-
VBA G列セル列が空欄の場合、最...
-
EXCELマクロで
-
VBAで丸をつけたいです。
-
G40セルのある数値の基準により...
-
vbaで別のシートにセルで選択...
-
エクセルVBA(実行時エラー438...
-
VBAの文字の置換に関してのプロ...
-
Windowsで動くVBAがmacOSで動か...
-
式を残して値のみ削除
-
エクセル マクロ 見つけてセ...
-
vba テキストボックスとリフト...
-
【画像あり】オートフィルター...
-
Office2021のエクセルで米国株...
-
【マクロ】オートフィルターの...
-
libreoffice calcで行を挿入し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データが入力されている隣のセ...
-
EXCELマクロ 保護されているシ...
-
エクセルVBA(実行時エラー438...
-
Windowsで動くVBAがmacOSで動か...
-
エクセルテキストボックスの文...
-
VBAで、貼り付け禁止命令を実現...
-
VBA セルに合わせて移動するが...
-
メッセージを1度だけ表示したい。
-
エクセルのVBAでダブルクリック...
-
ダブルクリックすると現在の時...
-
ハイパーリンクされているファ...
-
VBAで選択したセルのみ処理を実...
-
VBAで丸をつけたいです。
-
【VBA】参照値を1ずつ増やして...
-
Swing 編集不可でも選択可能なJ...
-
Jtableの特定のセルの背景色や...
-
VBAのListBoxで複数選択して...
-
VBAについて教えてください。 E...
-
エクセルVBA セル選択後にカレ...
-
セル色を5秒間隔で変える
おすすめ情報