• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA 値のみ貼り付け)

VBAで値のみを貼り付ける方法は?

YKKIKS63の回答

  • ベストアンサー
  • YKKIKS63
  • ベストアンサー率44% (22/50)
回答No.1

VBAでは、選択セルのアドレスを取得することができたと思いますが。 Sub ボタン228_Click() Dim wk As String wk = Range("S15")       '質問の場合、"A1" MsgBox Selection.Address   'アドレス取得とはどういうことかを示すためのコード。質問でやりたいこととは無関係。 Selection = wk 'ボタン操作する時点で選択しているセルに、変数wkに設定した値をセット End Sub ちなみに、上記コードはMS-Office2010のExcelで実行確認済み。 他のバージョンでも"selection"を使えると思います。使えなかったら済みません。 なお、質問者様のやりたいことを勘違いしてとらえている場合は本回答は無視してください。

rewqfdsavcxz
質問者

お礼

ありがとうございます! 描いていた通りのことが出来ました。

関連するQ&A

  • 値の貼り付けをするVBA

    セルA1をコピーして、セルA2に値の貼り付けをするVBAを作っています。 下記のように記述しているのですが、 セルA2に値の貼り付けをするときに小数点第3ケタ目以下はデータを捨てることは出来ますでしょうか? セルの設定で小数点2桁目まで表示するのではなくて、セルに入力するデータを小数点2桁の数字にしたいです。 range("A1").Copy Range("A2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

  • 値の貼り付け

    Range("A1").Copy Range("B2").PasteSpecial Paste:=xlPasteAll, _ Operation:=xlPasteSpecialOperationNone 上記の値の貼り付けを行うプログラムがあったときに これを一行にまとめることは出来ますか? Range("A1").Copy Range("B2").PasteSpecial Paste:=xlPasteAll, _ Operation:=xlPasteSpecialOperationNone このように書くとエラーになってしまいます。 PasteSpecialがある時は一行にならないのでしょうか?

  • .copy で値だけの貼付け方法を教えてください

    セル結合してある備考欄の値を、別のブックのセルに貼り付けます。 貼り付けるブックのセルには罫線があるので、これを消さずに、値だけ貼り付けたいです。 Workbooks(MyFName).Worksheets("部品表").Range("P" & j + 5).Copy Workbooks(MyFName2).Worksheets("PartsList").Range("M" & k + 1) とすると、罫線が消えてしまうので おしりに .PasteSpecial Paste:=xlValues を付けてみましたら、赤く反転しエラーになってしまいました。 どうしたら、.copyで値のコピー貼付けができますか どうかご指導ください

  • エクセルVBAで値の貼り付けができない

    色々調べたのですが、出来ない理由が見つけられません。よろしくお願い致します。 計算式の入っているセルをマクロで貼り付けしようと思っているのですが、 貼り付ける際、値の貼り付けにしたいのです。 下記の通りすると計算式のまま貼り付けされてしまいます。 どなたか教えて下さい。お願い致します。 Selection.Copy wsKei.Select wsKei.Range("A" & intLinekeistr & ":A" & intLinekei - 1).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False エクセルは、2007 PCはvistaです。

  • Excel VBA 値の貼り付けとUnicode テキスト貼り付け

    クリップボードの内容(数値もしくは文字列)を貼り付ける際、 アクティブなセルに値もしくはUnicodeテキストとして 貼り付けるコードを書こうとしています。 コピー&ペーストする内容は1つのセルだったり、複数のセル範囲だったり、 はたまたExcel以外のアプリケーションからのコピーだったりします。 それぞれについては下記のように書けば希望通りになるのですが どちらであっても対応できるよう、 両方の機能を一つのプロシージャでまとめることは可能でしょうか? ■エクセルシート上の値(セルや範囲)からの貼り付け Selection.PasteSpecial Paste:=xlValues ■外部ファイル(HTMLなど)からのUnicodeテキスト貼り付け ActiveSheet.PasteSpecial Format:="Unicode テキスト" これらは「マクロの記録」を参考にしたものですが、 Rangeオブジェクト用とWorksheetオブジェクト用に分かれているので クリップボードの種別判定?やエラー判定?のようなif文等による 何らかの分岐が必要なのかなと思い、自分なりに調べてみましたが、 具体的な方法がわからず困っております。 どちらにも対応できるコードにするにはどうすれば良いでしょうか? どうぞよろしくお願いいたします。

  • VBA初心者です。値を貼り付け について質問です。

    VBA初心者です。 値を貼り付け について教えてください。 Sub test() With Workbooks("A.xls").Worksheets("sheet1") .Range("A1").Copy Workbooks("Bxls").Worksheets("sheet1").Range("B2") .Range("A2").Copy Workbooks("B.xls").Worksheets("sheet1").Range("B4") End With End Sub コピーする方に計算式が入っているので 値を貼り付け したいのですが、どうすればいいのでしょうか? PasteSpecial Paste:=xlPasteValues を使ったらよいというところまではわかったのですが・・・。 教えてください!よろしくお願いします!

  • Excel2000/VBA:値と書式のみ貼り付けたい。

    Excel2000のVBAで値と書式のみ貼り付けたいのですが、可能でしょうか。2Excel2003なら Range("A1:Y100").PasteSpecial Paste:=xlPasteValuesAndNumberFormats でうまくいくのですが、Excel2000だとエラーがでます。「Range クラスの PasteSpecial メソッドは、失敗しました」とでます。これが、Paste:=xlPasteValues ならちゃんと貼り付けできますのでコピー範囲がセレクトされていない原因のエラーではないようです。

  • 助けてください!!VBA初心者なんですが、複数範囲をコピーして指定列に貼り付けたいのですが

    助けてください!!VBA初心者なんですが、複数範囲をコピーして指定列に貼り付けたいのですが、エラーが出てしまいます。 説明が下手なので図のようなもので 下図1  ABCDE 1あいうえお 2あいうえお 3あいうえお 4あいうえお 下図2  ABCDEFGHIJ 1あ い う  え お 2あ い う  え お 3あ い う  え お 4あ い う  え お まずは下図1のように下図2の様に指定した列に貼りたいのですが。 Range("A1:E5").Copy Range("A1,C1,E1,H1").PasteSpecial Paste:=xlValues でエラーになり別々にと考えて Range("A1:A5,B1:B5,C1:C5,D1:D5,E1:E5,").Copy Range("A1,C1,E1,H1").PasteSpecial Paste:=xlValues でも無理でした…なにかいい方法があれば教えてください。 単純に Range("A1:A5").Copy Range("A1").PasteSpecial Paste:=xlValues Range("B1:B5").Copy Range("C1").PasteSpecial Paste:=xlValues Range("C1:C5").Copy Range("E1").PasteSpecial Paste:=xlValues Range("D1:D5").Copy Range("H1").PasteSpecial Paste:=xlValues Range("E1:E5").Copy Range("a1").PasteSpecial Paste:=xlValues とするしかないんでしょうか? なにかいい方法があればお教えください!!

  • VBA:Offsetから値が貼付けれない

    はじめまして。 VBAを利用してマクロを作っているのですが、 Range("a6:l6").Copy Worksheets("結果シート").Range("A65536").End(xlUp).Offset(1) というのは動くのですが、結果シートへの貼付けを「値」で行いたいと思い、 以下の通りValueを指定しても動きません。 Range("a6:l6").Copy Worksheets("結果シート") .Range("A65536").End(xlUp).Offset(1).value PasteSpecialを使うと良いのかと思い、 Range("a6:l6").Copy Worksheets("結果シート") .Range("A65536").End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues としてもエラーが出ます。 数式の結果を取得して、別のシートの空白セルを探し、「値」として張付ける。 というのがしたいのですが、なにか上手い方法があれば、ご教授お願いします。

  • なぜ張り付けは、「セルを指定+.Paste」ではだ

    なぜ張り付けは、「セルを指定+.Paste」ではだめなのでしょうか? VBAを勉強しているのですが セルを指定+メソッドで セルに対して動作ができると覚えていました。 例えば、 Range("A1").Copy もRange("A1")でセルを指定して、Copyメソッドを使っています。 しかし、張り付けに関しては、 Range("A1").Paste をすると、 「オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438)」 と言うエラーになってしまいます。 それに、 「 Range("A1")」を入力して、「.」を入力すると、ヒントが出ますが そこにCopyはあるけど、Pasteは出てきません。 Pasteは特別な扱いなのでしょうか? そもそもPasteはメソッドではないのでしょうか? ちなみに Sub test() Range("A1").Copy Range("A2").PasteSpecial End Sub なら問題なくできました。 どなたか Range("A1").Paste がエラーになる理由を教えてください。 ご回答よろしくお願いします。

専門家に質問してみよう