![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
エクセルのマクロについて教えてください。
マクロでエクセルのセルから、PDFのデータを呼び出したいのですが、どのような設定をすればいいでしょうか?いろいろなサイトでみた設定を試してみているのですが、うまくいきません。ひょっとしたらPDFの名前を入力する部分か、データの置き場所等が違うのかとも思っています。できましたら下記の条件で、PDFの名前やデータの置き場所も入力して、教えていただけるとありがたいです。なお当方はマクロの素人なので、詳しく教えていただけるとありがたいです。
条件 1,エクセルは2010です。
2,PDF、エクセルシートともにデスクトップ上の1同じフォルダ内にあります。
3,PDFの名前は1234.pdfです。
4、フォルダ名は5678です。
5,エクセルシート名はtatai.xlsです。
6,ハイパーリンクはデザインの関係で使えません。
7,できあがったら基本的にUSB等で持ち運びたいです。
*またPDFについてはなんらかの関連付け等が必要なのでしょうか?
No.3ベストアンサー
- 回答日時:
#2の回答者です。
>マクロのsheet1に下記のように書き込み、エクセルのsheet1の:セルに1234.pdf
>と入力しました。
これ自体は、間違いないはずです。ファイル名が何個でも、何千個でも、ワークブックに余計なWebメニューなど出て来ません。私は、同じようなものを作ってみましたから。
#2で書いたコードは、[イベント・ドリブン型マクロ]といいます。
補足に書かれたコードは、その機能を殺してしまいました。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) '←Private Sub ~の行は決まり文句です。ダブルクリックで反応する特別な呪文のようなものです。
~
End Sub
で、ひとまとまりで、貼り付ける場所は、ワークシートのタブを右クリックすると、コードの表示と出てきますから、それをクリックして、開いた場所に、そのまま貼り付けるわけです。ダブルクリックすると、Target という所に、そのアクティブセルの情報(PDFのファイル名)が入ってくるわけです。
この回答への補足
>で、ひとまとまりで、貼り付ける場所は、ワークシートのタブを右クリックすると、コードの表示と出てきますから、それをクリックして、開いた場所に、そのまま貼り付けるわけです。ダブルクリックすると、Target という所に、そのアクティブセルの情報(PDFのファイル名)が入ってくるわけです
何度も申し訳ありません。上記のようにしたのですが、コンパイルエラー変数が定義されていません。
と出てしまうのですが?
すいません。リンクできました。私の単純な入力ミスだったようです。
素人の初歩的な質問にも丁寧にお答えいただき、ありがとうございました。
No.2
- 回答日時:
こんばんは。
PDF 名の入力は必要ありませんが、
シートのセルにリストが書いてあることが条件です。
要するに、ハイパーリンクと同じようなものですが、ハイパーリンクを使わないだけです。
マウスのダブルクリックで、PDFファイルが開くはずです。
このコードは、シートモジュール(Sheet1, Sheet2など)に登録(貼り付け)しますが、ワークシートにPDFのファイル名が書かれていること。(例:1234.pdf)
PDF閲覧ツールは何でも良いけれども、拡張子から起動できること。
私の記憶では、Windows98では、動かないはずです。XP以上
「デスクトップ上の1同じフォルダ内」-つまり、PDFファイルと、ワークブックが同じフォルダー内なら、以下のPrivate Const の登録は不要です。違う場合は、以下のように、例 "D:\5678\"と入れます。
'Option Explicit
'Private Const pdfPATH As String = "D:\5678\"
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Not Target.Value Like "*.pdf" Then Exit Sub
If Dir(pdfPATH & Target.Value) = "" Then MsgBox "File Not Found": Exit Sub
With CreateObject("Wscript.Shell")
.Run "" & pdfPATH & Target.Value & "", 3
End With
End Sub
この回答への補足
詳しい回答ありがとうございます。
さっそく試してみたのですが、オブジェクトが必要です。と出てうまくいきません。
やったのは、マクロのsheet1に下記のように書き込み、エクセルのsheet1の:セルに1234.pdf
と入力しました。
Sub Macro5()
'
' Macro5 Macro
'Private Sub macro4Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Not Target.Value Like "*.pdf" Then Exit Sub
If Dir(pdfPATH & Target.Value) = "" Then MsgBox "File Not Found": Exit Sub
With CreateObject("Wscript.Shell")
.Run "" & pdfPATH & Target.Value & "", 3
End With
'
End Sub
コード名の書き方がどこか間違っているのでしょうか、それともシートのセルにリストが書いてあることが条件というのを私が間違ってとらえてしまっているのでしょうか?なおマウスのダブルクリックで、PDFファイルが開かないのですが?
初歩的な質問で申し訳ありませんが、ご回答お願いいたします。
No.1
- 回答日時:
> PDFのデータを呼び出したいのですが
「呼び出す」とは?
シートに挿入?外部アプリケーションを開く?
> マクロの素人なので、詳しく
要約すると
> 自分の仕事で使うマクロを組みたいが、勉強する気はない
> 誰か無償で作ってくれ
こういう事ですね。
わざわざマクロを組まなくても、エクスプローラーなどでダブルクリックしたらいいんじゃないですか。
> 6,ハイパーリンクはデザインの関係で使えません。
ハイパーリンクを組んで、表示文字列を短く変更しておけば、
ボタンよりコンパクトにも作れますが、いかがですか。
オートシェイプにハイパーリンクを設定して、立体表示しておけば、
コマンドボタンと同様に見せて使う事も可能ですが、いかがですか。
この回答への補足
>要約すると
自分の仕事で使うマクロを組みたいが、勉強する気はない
誰か無償で作ってくれ
こういう事ですね。
結果的にはそうなっているかもしれませんが、いろいろと試して困り果てたうえでの結果です。しかしとげのある言い方ですね。不愉快です。
>わざわざマクロを組まなくても、エクスプローラーなどでダブルクリックしたらいいんじゃないですか。
質問者には質問者の都合や事情があるとおもいます。質問者のニーズにこたえる気がないのなら、回答しなければいいのではないでしょうか?
まあ最低の回答者ですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行して 作業フォルダの中にある PDFファイル名を 3 2023/07/01 15:16
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Excel(エクセル) PDFファイルに日付を名前にして保存したい。 エクセル2019でワークシートに請求書のフォームを作り 2 2023/05/27 11:13
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/15 16:33
- Excel(エクセル) 【VBA】フォルダAにある2つのファイルの内1つを、フォルダBへ。もう1つを、フォルダBへ移動したい 6 2022/07/26 08:51
- Excel(エクセル) エクセルVBA、間違っているコード内容を正して頂けませんか? エクセルワークシートに納品書を作ったの 2 2023/08/02 21:13
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/26 17:13
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/07/01 12:54
- Visual Basic(VBA) ワイルドカード「*」を使うとうまくいかないマクロの添削をお願いします 3 2022/03/26 09:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【エクセル】フリーワード検索...
-
エクセルで複数のシートのクリ...
-
Excel VBA で行列計算をさせた...
-
エクセルで特定の行だけ行削除...
-
エクセルのマクロ実行後にカー...
-
マクロ1があります。 A1のセル...
-
VBA シートをコピーする際に Co...
-
あああ..ああい..ああう とい...
-
エクセルマクロの組み方
-
B列の最終行までA列をオート...
-
列方向、行方向の定義
-
Excelの行数、列数を増やしたい...
-
VBAコンボボックスで選択した値...
-
vba 2つの条件が一致したら...
-
楽天RSSからエクセルVBAを使用...
-
Excel UserForm の表示位置
-
エクセルで特定の文字列が入っ...
-
エクセルVBAが途中で止まります
-
エクセルVBA 配列からセルに「...
-
VBA シート名が一致した場合の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のシートのクリ...
-
Excelで数字を入れたら対応する...
-
Excel VBAでのWorksheet_Change...
-
エクセルファイルを開いた回数...
-
Excelのシート上のShapeにイベ...
-
【エクセル】フリーワード検索...
-
【エクセル】「実行時エラー’10...
-
セルの一部分だけを太字にする方法
-
長い時間かかるマクロが実行中...
-
Excelでセル内の文字をファイル...
-
エクセルで特定の行だけ行削除...
-
エクセル シート内の一番下のセ...
-
エクセル:セル内の文字列の最...
-
EXCELのダイアログシートって、...
-
エクセルVBAで実行中画面を...
-
前月分を次月シートに繰越でき...
-
マクロ1があります。 A1のセル...
-
excel定数の違いについて。xlAu...
-
エクセルマクロでファイル名や...
-
エクセルのマクロ実行後にカー...
おすすめ情報