PDFファイルをコピーしてエクセルブックにはりつけるVBAをかきました。
これをフォルダ内にあるすべてのPDFを順にエクセルブックに張り付けるやり方を
おしえていただけないでしょうか。
Sub StartAdobe()
Dim AdobeApp As String
Dim AdobeFile As String
Dim StartAdobe As Long
AdobeApp = "C:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe"
AdobeFile = "C:\Users\admin\test\test.pdf"
StartAdobe = Shell("" & AdobeApp & " " & AdobeFile & "", 1)
Application.OnTime Now + TimeValue("00:00:05"), "FirstStep"
End Sub
Private Sub FirstStep()
SendKeys ("^a")
SendKeys ("^c")
Application.OnTime Now + TimeValue("00:00:10"), "SecondStep"
End Sub
Private Sub SecondStep()
VBA.AppActivate Excel.Application.Caption
Windows("Book1.xlsm").Activate
Range("A1").Activate
SendKeys ("^v")
End Sub
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
無理やりです。
動作保証はできません。(私の環境では一応動きましたが・・・)もし、低スペックのPCで実行するようであれば、Wait時間などを調整してみて下さい。
ご検討をお祈りします。
Sub sample2()
Dim MeApp As String
Dim AdobeApp As String
Dim AdobePath As String
Dim AdobeFile As String
Dim StartAdobe As Variant
MeApp = Application.Caption
AdobeApp = "C:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe"
AdobePath = "C:\Users\admin\test\"
AdobeFile = Dir(AdobePath & "*.pdf")
Do While AdobeFile <> ""
ThisWorkbook.Sheets("Sheet1").Range("A1").Copy
On Error GoTo ErrorHandler
StartAdobe = Shell("" & AdobeApp & " " & AdobePath & AdobeFile & "", 1)
AppActivate StartAdobe, False
On Error GoTo 0
SendKeys ("^a"), True
SendKeys ("^c"), True
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys ("%{F4}"), False
AppActivate MeApp, True
Worksheets.Add.Name = AdobeFile
ActiveSheet.Paste
Range("A1").Select
AdobeFile = Dir
Loop
Exit Sub
ErrorHandler:
Application.Wait (Now + TimeValue("0:00:03"))
Resume Next
End Sub
No.3
- 回答日時:
気持ちはわかるのですが、ちょっと無謀な気がします。
そもそもPDFはテキストではないです。仮に、mackojiさんがコピーしようとしているPDFでは、テキスト扱いでコピペができたとしても、すべてのPDFでできるとは限りません。
それから、Cntl+aで選択できるのは、表示中のページだけだったりしませんか?複数ページがある場合は、次ページ操作をしてコピーする必要がある等、難問だらけですよね?
どこまで妥協できるかにもよりますが、私なら諦めます。
No.2
- 回答日時:
SendKeysでのコピペは最終手段ですよ。
できれば避けたいところです。そこで、こんなのはどうでしょうか。
普通の操作でいうと、新しいシートを追加して「挿入」-「オブジェクト」-「ファイルから」でPDFを張り付けるイメージです。それをDir関数でファイル名を取得しながらループしています。
検索対象のフォルダは、ThisWorkbook.Path です。
Sub sample()
Dim MyPathName
Dim MyFileName
Dim MyPDF
MyPathName = ThisWorkbook.Path & "\"
MyFileName = Dir(MyPathName & "*.pdf")
Do While MyFileName <> ""
Worksheets.Add
Set MyPDF = ActiveSheet.OLEObjects.Add(Filename:=MyPathName & MyFileName, _
Link:=False, DisplayAsIcon:=False)
MyFileName = Dir
Loop
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/07/01 12:54
- Excel(エクセル) 【VBA】 Alt+PrintScreenにてアクティブウィンドウのスクショを貼付する方法 4 2022/12/08 20:53
- Excel(エクセル) エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ 6 2023/06/30 22:17
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Excel(エクセル) エクセル2019でPDFファイル名に枝番号をつけたい。 アクティブワークシートを印刷した後の処理とし 4 2023/06/06 21:00
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
ExcelVBAでPDFを閉じるソース
その他(Microsoft Office)
-
pdfのテキスト全文コピー、テキストファイル作成、ペーストのプログラムを教えてください!
その他(プログラミング・Web制作)
-
EXCELにPDFデータを美しく貼り付けたい
その他(ソフトウェア)
-
-
4
PDFファイルを開き、印刷し、閉じるマクロ
Visual Basic(VBA)
-
5
エクセルVBAで、PDFファイルを開きたい
Excel(エクセル)
-
6
サブフォルダー内のPDFファイルを別フォルダにコピーするVBA
Excel(エクセル)
-
7
ワードからエクセルへ貼り付けるマクロ
Excel(エクセル)
-
8
VBAでEXCELに埋め込んだPDFを開く方法
その他(Microsoft Office)
-
9
メッセージボックスを前面に表示させるには?
Visual Basic(VBA)
-
10
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
11
PDFファイルの文章コピー、エクセルブックに張り付けるVBA
Excel(エクセル)
-
12
VBAでPDFのコピーとリネームを行いたい
Excel(エクセル)
-
13
エクセルVBA 配列からセルに「関数式」を一気代入したい
Visual Basic(VBA)
-
14
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
15
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
16
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
17
エクセルVBAで画像から文字を抽出出来ますか?
その他(Microsoft Office)
-
18
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
19
Excel VBAでPDFファイルをMicrosoft Print to PDFで出力したい
Visual Basic(VBA)
-
20
VBA PDFファイル印刷後のAcrobatReaderDCの起動画面を閉じたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel 関数を使ってデータと一...
-
エクセルの選択範囲以外を削除...
-
EXCELのVBAでシートコピーをし...
-
Excelの行をコピーして貼り付け...
-
【VBA】コピー&複数個所のペー...
-
EXCELで別のブックから式をコピ...
-
【Excel】数式をそのまま他のシ...
-
PDFファイルをコピーしてエクセ...
-
アクセスの画面をプリントスク...
-
Excel 数式の保護をしたセルを...
-
エクセルシートを別のエクセル...
-
エクセルVBA 1行飛ばしで転記す...
-
エクセルの1シートの内容を複...
-
エクセルでシートを「移動また...
-
エクセルのシートコピーした際...
-
【Excel】シート全体から一部を...
-
VBA 先頭文字の0(ゼロ)...
-
エクセル 別ファイルから シー...
-
Excel シートに別のExcelシート...
-
【Excel VBA】シートコピー時、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 関数を使ってデータと一...
-
エクセルの選択範囲以外を削除...
-
EXCELのVBAでシートコピーをし...
-
EXCELで別のブックから式をコピ...
-
【Excel】数式をそのまま他のシ...
-
【VBA】コピー&複数個所のペー...
-
Excelの行をコピーして貼り付け...
-
CSVファイルについて質問です。
-
【エクセル】プルダウン設定の...
-
Excel シートのコピーの際、ペ...
-
Excel 数式の保護をしたセルを...
-
【Excel VBA】シートコピー時、...
-
エクセルの1シートの内容を複...
-
ExcelVBAで、ユーザーフォーム...
-
Excel シートに別のExcelシート...
-
シートが保護されていないのに...
-
PDFファイルをコピーしてエクセ...
-
エクセルシートを別のエクセル...
-
エクセルVBA 1行飛ばしで転記す...
-
エクセルでシートを「移動また...
おすすめ情報
自分で1から書くことができないんです・・・
差支えなければ、書いては頂けないでしょうか
ありがとうございます!ただこれだと画像になってしまっていて、
僕がとりたいのはテキストをコピーしたいんです・・・
できないでしょうか?
無理やり Cntl+a Cntl+c でVBAをつくることはできますか
申し訳ないのですが、できたら作って頂けないでしょうか
ありがとうございます。1,2個のファイルだと動いたのですが、10個ぐらいになると
うまく張り付けられなくなりました。。やっぱり難しいですかね・・
これはVBA以外のプログラムだったらできたりするものなのでしょうか?