クリップボード内容をエクセルのシートに貼り付けることをvbで行おうとしています。
1回目はできるのですが、2回目にはエラーが出てしまいます。(貼り付けるセルを指定したときに)
現状のコードを添付します。おかしなところがわかる方、教えて下さい。
'-------------------------------------------------------
'エクセルを起動させる
'-------------------------------------------------------
Public Sub ExcelProc()
Dim xl2 As Excel.Application
Dim xl2Book As Object
Dim xl2Sheet As Object
Dim ELSFileName As String
'エクセルの起動
Set xl2 = CreateObject("excel.application")
xl2.Visible = True
xl2.Workbooks.Open ("d:\test.xls")
Set xl2Book = xl2.ActiveWorkbook
Set xl2Sheet = xl2Book.Worksheets(1)
'D10にクリップボードの内容を貼り付ける
xl2Sheet.Select
Range("d10").Select
ActiveSheet.Paste
'保存するファイル名を作成
ELSFileName = "c:\test10.xls"
'保存
ChDir "C:\"
ActiveWorkbook.SaveAs FileName:=ELSFileName, FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
Set xl2Sheet = Nothing
xl2Book.Close True
Set xl2Book = Nothing
xl2.Quit
Set xl2 = Nothing
End Sub
この関数を2度実行させたらエラーになります。
Range("d10").Select 'この箇所でエラーになる。
お願いします。
No.2ベストアンサー
- 回答日時:
以下のように変更してみてください。
Active~を使用するとうまくEXCELが開放されないみたい。
'D10にクリップボードの内容を貼り付ける
xl2Sheet.Range("d10").PasteSpecial
'Range("d10").Select
'ActiveSheet.Paste
'
''保存するファイル名を作成
ELSFileName = "c:\test10.xls"
''保存
ChDir "C:\"
xl2Book.SaveAs FileName:=ELSFileName, FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
ありがとうございました。
うまくいきました。
ちなみに、クリップボードにはvb上のフォームをコピーしています。
Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
sub test
keybd_event &H12, 0, 0, 0 'Altキーを押す
keybd_event &H2C, 0, 0, 0 'PrintScreenキーを押す
keybd_event &H12, 0, &H2, 0 'Altキーを離す
keybd_event &H2C, 0, 0, 0 'PrintScreenキーを離す
DoEvents
end sub
上記コードでフォームをコピーしているのですが、これだけでなく、フォーム内のコントロールのみを抜き出して、クリップボードにコピーすることなどできるのでしょうか?参考に教えて下さい。
多分、新しい質問にもそのうち入れると思いますがわかるようであれば教えて下さい。
No.3
- 回答日時:
横道にそれて済みませんが、VB-->Excelなら
VBでなら
Sub main()
If Clipboard.GetFormat(vbCFText) = True Then
s = Clipboard.GetText
End If
MsgBox s
End Sub
は単独で動きました。
VBAではオブジェクトがないとエラーになりますが。
何か参照設定でもしてVBAでも動きませんでしょうか。
ClipBoardは安定しています。何回使おうと。
ここが小生には判らないのですが。
VBAではコピー・ペースト(特にペースト)は理屈の理解が難しい。
OKWEBの質問439996で苦労しました。
そこのnishi6さんのご回答など参考になりませんでしょうか。外れていたら済みません。
No.1
- 回答日時:
>Range("d10").Select 'この箇所でエラーになる。
貼り付ける対象が見当たらないからでしょうきっと。
ワークブックとシートをそれぞれアクティブにしてあげたらどうでしょうか?
この回答への補足
回答ありがとうございます。
下記のように変更してみました。
'D10にクリップボードの内容を貼り付ける
xl2Book.Activate
xl2Sheet.Activate
xl2Sheet.Select
Range("d10").Select
ActiveSheet.Paste
しかし、結果は変わりませんでした。
補足として、このプロシージャは、コマンドボタンのクリックイベントで実行しています。起動後1回ボタンを押すと正常に動作を行うのですが、2回目ボタンを押すと先ほどの箇所でエラーになります。
いったいどうしてでしょう、原因がわかりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
[VB.net] Excelへの画像貼り付け処理についての疑問
Visual Basic(VBA)
-
C# Excelファイルへの画像挿入。
その他(プログラミング・Web制作)
-
VB.NET操作で Excelにビットマップ貼り付け
Visual Basic(VBA)
-
-
4
C#で画像をクリップボードへのコピーと貼り付けについて
C言語・C++・C#
-
5
[VB.net] ExcelへのQRコード出力処理について
Visual Basic(VBA)
-
6
1004RangeクラスのPasteSpecialメソッドが失敗
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ネットワーク接続を確認する手...
-
英語スパム対策。正規表現で日...
-
エクセルVBA 実行時エラー 5029...
-
ソフトのインストール場所って...
-
aptでインストールしたプログラ...
-
コマンド実行結果のファイル出力
-
バッチファイル内置換
-
誰かにサーバにあるデータを消...
-
CSHが使えない REDHAT
-
フロッピーディスクの読み込み方法
-
バッチファイルで多重起動を防ぐ
-
Macの手書き漢字入力ツールにつ...
-
複数ファイルのシンボリックリンク
-
大塚商会で新しくシステム、ス...
-
OS インストール場所確認
-
VBでExcelが起動されているか知...
-
Linux●前の行に戻れません...
-
lprコマンド(印刷)を実行する...
-
Xserverを停止したいが、gdmが...
-
emacsでサブディレクトリもload...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Basp21を使用してメール送信が...
-
ネットワーク接続を確認する手...
-
エクセルVBA 実行時エラー 5029...
-
クリップボードの内容をEXCELに...
-
ご教授願います PC初心者です。...
-
VBSエラー
-
VBAのRegExpで後方一致/不一致...
-
Access VBA レポートの日付範囲...
-
VBからACCESSのレポートをプレ...
-
VBAで画像ファイルをダウンロー...
-
PIC kit2 エラーについて
-
TOMCAT起動時エラー
-
VB.NET と クリスタルレポート
-
You Tube動画のダウンロードが...
-
エクセルを開くと・・・
-
エクセルの動作が停止する不具...
-
三菱エコキュート 今朝 C21 エ...
-
ソフトのインストール場所って...
-
バッチスクリプト処理でエラー...
-
mac os 10.6の入ったMac mini ...
おすすめ情報