
以前は正常に動いていたのですが、現在エラー1004となり起動してくれません。
どこがおかしいのか教えていただけると幸いです。
Sub listC()
Cells.ClearContents
Range("a1").Select
x = InputBox("タブの数")
For i = 1 To x Step 1
AppActivate "Google Chrome"
SendKeys "^{Tab}", True
SendKeys "^a", True
SendKeys "^c", True
AppActivate "Microsoft Excel"
Application.Wait Now() + TimeValue("00:00:01")
ActiveSheet.PasteSpecial Format:="テキスト", Link:=False, DisplayAsIcon:= _
False
Selection.End(xlToRight).Select
Selection.End(xlDown).Select
Selection.End(xlToLeft).Select
Selection.End(xlUp).Select
ActiveCell.Offset(1, 0).Range("A1").Select
Next i
End Sub
よろしくお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
できれば、Tabは、何を意味しているのか教えていただければとは思っていますが、むしろ、Google Chrome が絶対的なものなのか、IEが代用できるのか、とか。
IEの場合は、ほぼ画面のデータ撮りができます。
無理強いはしないのですが、その他の手段として、今、私は、SeleniumBasic で、Google Chrome を動かすことも試しています。IEのみが今のところ、Excel VBAでは連結でき、イベントも取れるのですが、他のブラウザ(Edgeを含む)は、こうした特別のWrapper でないと不可能のようです。
SeleniumBasic は、設定が面倒なので、ちょっとお勧めできません。
No.3
- 回答日時:
>2タブ目以降の情報がExcelに落ちない(白紙)現状です。
おそらく、微妙なバランスによって成り立っていたのではないでしょうか。
だから、そのマクロのバランスを壊してしまったような気がします。
今の段階では、それ自体、確認もとれませんし、本格的なマクロでもありませんので、もし、キーボードマクロをするつもりなら、UWSCで行ったほうが楽だとは思います。
>2タブ目以降の情報がExcelに落ちない(白紙)現状です。
しかし、Webサイトのページが決まっているなら、Document.All や InnerText でも可能ですし、IEのコマンドのExecWBから、OLECMDID_SELECTALL ->OLECMDID_COPY という方法もありますし、いろんな方法が考えられますが、SendKeys だけですと、これ以上は私には分からないです。
No.2
- 回答日時:
こんにちは。
シートのアクティブ化?
今まで動いていたというのもすごいと思います。
Sub listC()
ThisWorkbook.ActiveSheet. Cells.ClearContents '←変更
Range("A1").Select
x = InputBox("タブの数")
For i = 1 To x
AppActivate "Google Chrome"
SendKeys "^{Tab}", True
SendKeys "^a", True
SendKeys "^c", True
AppActivate Application.Caption '←変更
Application.Wait Now() + TimeValue("00:00:01")
ActiveSheet.PasteSpecial Format:="テキスト", Link:=False, DisplayAsIcon:= _
False
With ActiveSheet.UsedRange
i = .Cells(.Cells.Count).Row + 2 '←変更
End With
Cells(i, 1).Select
Next i
End Sub
ちょっと手を入れてみました。
Google Chrome というと、通常、SeleniumBasic やiMacros を使うはずですが、そのどれも使わないというのは、考えたこともありませんでした。
>シートのアクティブ化はできているようです
シートというよりも、Excel アプリのフレームだけのことがあります。
シートのアクティブ化というのは、厳密には、Selection の中身が "Range" でないといけないわけです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】【相談】Excelブック...
-
エクセルのVBAで集計をしたい
-
コマンドボタンがデザインモー...
-
エクセルを開いたとき常に同じ...
-
EXCELのエラー
-
Excelでたくさんのシートで設定...
-
エクセルでシートの並び替えで...
-
エクセルで回数をカウントする...
-
複数シートにある列を削除
-
【 Excel】シートの見出しに自...
-
VBA シート名を先月の名前に...
-
左隣のシートをコピーして挿入
-
【Excel】複数あるシート上の住...
-
Excelのマクロの呼び出し元を知...
-
複数シートの保護・解除
-
マクロで複数シートに条件付き...
-
マクロを特定の複数シートで実...
-
マクロを複数シートに実行する...
-
EXCELの起動時に常に同じ...
-
excelの不要な行の削除ができな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのVBAで集計をしたい
-
【マクロ】【相談】Excelブック...
-
コマンドボタンがデザインモー...
-
エクセルを開いたとき常に同じ...
-
【 Excel】シートの見出しに自...
-
マクロを複数シートに実行する...
-
エクセル ヘッダー(フッター)...
-
EXCELでマクロを使わずに図形の...
-
Excelのマクロの呼び出し元を知...
-
EXCELのエラー
-
エクセルでシートの並び替えで...
-
マクロを特定の複数シートで実...
-
エクセルで複数のSheetを一括フ...
-
VBA シート名を先月の名前に...
-
メッセージボックスでシート名...
-
マクロ 各シートの決められた位...
-
Excel:複数シートから条件に合...
-
EXCELでワークシートを開いたら...
-
エクセルのチェックボックス
-
エクセルVBAでcmbBoxのプロパテ...
おすすめ情報
シートのアクティブ化はできているようです。
一度yをコピーし、マクロを起動するとxの数だけyがペーストされます。
例:x=3
y
y
y
タブ毎の全文章をコピペしたいです。
ありがとうございます!!
エラーは出ることなく使用できるようになりました。
しかしながら、複数のタブ(i=2~)で行うと、最初の1タブのみのページが全選択+コピーされ、2タブ目以降の情報がExcelに落ちない(白紙)現状です。