質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

1871閲覧

VBAで貼り付けが2回目以降うまくできないことについて

yukiki2

総合スコア3

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2022/02/08 00:49

A1〜A10に1から10までの数字を入力してあるのを別のエクセルファイルの1つのセルに貼り付けしたい。

ただ、1から10までの数字は仮で都度入る値は変わるため、単に改行コードを入れて貼り付けしただけでは、やりたいこととしては違うと考えています。
そこで、メモ帳に貼り付けし、先頭と末尾に「"」を入れそれをコピーして入力したいエクセルファイルに貼り付けしようと考えました。
また、入力先のセルも毎回同じところではなく、B列の一番最初の空白部分に貼り付けたいため、SpecialCellsを用いる方法を調べました。

コードは以下の通りなのですが、これは1回目だとうまくいきます。ですが、続けて実行すると、10個のセルに1から10までの数字が一つずつ入ってしまいます。(1つのセルに改行されて入らず、複数のセルに分かれて値が入ってしまいます。)
一度、入力先のファイルを保存して終了しないと実行できないようなのですが、解決策、原因等教えていただきたいです。

コード

Sub test() Range("A1:A10").Copy Shell "Notepad.Exe", vbNormalFocus Sendkeys "^v" Sendkeys "{BACKSPACE}""" Sendkeys "^a" Sendkeys "^c" Workbooks.Open ("C:¥test.xlsx") Range("B1:B10").SpecialCells(XlCellTypeBlanks).Item(1).Select Selection.Paste End Sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

やりたいことが、
A1〜A10の値を改行で連結して、前後に"(引用符)を付加して、
別ブックの一つのセルに入力する。
ということなら、下記でどうでしょう。

vba

1Sub test() 2 Dim s As String 3 s = Join(WorksheetFunction.Transpose(Worksheets("Sheet1").Range("A1:A10").Value), vbLf) 4 5 Dim wb As Workbook 6 Set wb = Workbooks.Open ("C:\test.xlsx") 7 On Error Resume Next 8 wb.WorkSheets(1).Range("B1:B10").SpecialCells(xlCellTypeBlanks).Item(1).Value = """" & s & """" 9 If Err <> 0 Then MsgBox "出力先に空白セルはありません。" 10End Sub

投稿2022/02/08 03:29

編集2022/02/08 05:15
hatena19

総合スコア34367

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yukiki2

2022/02/08 04:44

hatena19様 教えていただきありがとうございます。 こちらのコード試してみたところ、入力先のセルB1からB10全て空白だった場合、 「該当するセルが見つかりません」と出てしまいました。 こちらに関しても原因等教えていただけないでしょうか。
hatena19

2022/02/08 05:13

セルB1からB10が全て空白だったら、B1に入力されると思いますが。 逆に空白がないとエラーになりますので、そのエラー対策を回答のコードに追加しておきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問