アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルで例えばA1,A2,B1,B2の4つをコピーして 他のワークシートの1セル内に4つともペースト
させるにはどのようにすればいいのでしょうか。一個しかペーストしないのですが・・。

質問者からの補足コメント

  • ありがとう、エクセルでユーザーフォームの中のコンボボックスつくり そこに4コマ (4セル)を貼り付けようとするのですが、どうも指示通りやっても最初の一行しか貼り付けることできない。

    No.2の回答に寄せられた補足コメントです。 補足日時:2019/06/14 17:38
  • ご丁寧にありがとう。
    ニュー → 開発 → マクロ から標準モジュールに入れたマクロ『area_copy』を選択して、オプション → ショートカットキー のところに『d』を入力してOKとします。ですが
    マクロ『area_copy』は貼り付けたのですが、
    オプション → ショートカットキー のところに『d』を入力とはどうすればいいのでしょうか、未熟で申し訳ない。
    また直接プログロムを走らせるとFor i = r1 To r2のところで 定義されていないとか出てくるんです。(iのところ)
    手順としてはおおむねやれると思いますが・・。

    No.5の回答に寄せられた補足コメントです。 補足日時:2019/06/15 06:23
  • コンボボックスが出てくるのは実はフォームでマクロをつくっていて、氏名、年齢、処方内容を入れる、もしくは氏名を入れたら 処方内容を呼び出せるとするそんなフォームでの処方内容のところをコンボボックスにしましたということです。フォームからシートに基本患者データを蓄積してゆき、またフォームから名前をいれることにより逆に年齢、処方内容(薬品名、用法、用量など)を呼び出せるようにしたいわけです。ご教授のことは写真のようにすればいいことがわかりましたが、写真のような形にすると入ってゆかないコンボボックスに入って行かない・。

    No.6の回答に寄せられた補足コメントです。 補足日時:2019/06/15 16:29
  • ご親切に何度も丁寧な画像まで載せていただいての説明 有難うございます。感謝申し上げます。
    できました。Ctr+d も、そして すべて掲載も・・・。

    ただ、コピー元が 薬品名 数量、行を変えて薬品名、数量という具合になってゐるので、できれば見やすいように写真の画像のようにしたかったが これ以上 お願いはできませんので無理な要求は致しません。

    No.8の回答に寄せられた補足コメントです。 補足日時:2019/06/16 05:46
  • 何度も有難うございます。恐縮です。Ctrl+b はCtrl+dでしたですね。Sub area_copy() 内容 差し替えましたが、最初の一行だけでその一行の最初に " が入っていますが・・・。

    No.9の回答に寄せられた補足コメントです。 補足日時:2019/06/16 17:22

A 回答 (11件中1~10件)

No.5です。



>できれば見やすいように写真の画像のようにしたかったが・・・
写真は載せてないですよね?
セル内改行がはいるように修正しました。差し替えください。
使い方は同じで、マクロはコピーするところまでです。貼付けはCTRL+Vです。

Sub area_copy()
' 複数セルをコピーして、一つのセルに貼付け
' Keyboard Shortcut: Ctrl+b
Dim buf As String
Dim buf2 As String
Dim CB As DataObject
Dim i As Single
Dim j As Single
Dim myStr As String
Dim cellStr As String
Dim r1 As Single
Dim r2 As Single
Dim c1 As Single
Dim c2 As Single
Dim kugiri_moji As String
kugiri_moji = " " '←←← " "で囲まれた文字が区切り文字として入ります
r1 = Selection.Row
r2 = Selection.Row + Selection.Rows.Count - 1
c1 = Selection.Column
c2 = Selection.Column + Selection.Columns.Count - 1
For i = r1 To r2
For j = c1 To c2
cellStr = Cells(i, j)
myStr = myStr + kugiri_moji + cellStr
Next j
If i <> r2 Then myStr = myStr & Chr(10)
Next i
Cells(Rows.Count, c1) = myStr
Cells(Rows.Count, c1).Cut
End Sub
この回答への補足あり
    • good
    • 0

何となくですけど。



最初の質問にある4つのセルのコピペと【補足日時:2019/06/15 16:29】に書かれている補足内容とでは、必要なコード等が合致しないと感じるのは気のせいでしょうか?

>フォームからシートに基本患者データを蓄積してゆき

はどのタイミング(イベント)で実行するのか?(ここは完成されてる?)

>またフォームから名前をいれることにより逆に年齢、処方内容(薬品名、用法、用量など)を呼び出せるようにしたいわけです

と言うならまずは最初の質問内容は目的とは離れている感じがします。
こちらもどのタイミング(イベント)で実施するかもありますがデータの項目内容についての情報が不明確ですし、何より名前を基に基本患者データからデータをチョイスするなら、
ボタンクリックなどで名前が一致した同行のデータを配置しているコントロールに表示(全部ComboBox?)にリストとして追加していくだけと思えます。

なので個人的には『セル範囲を選択してのコピペ』云々ではないのではないかと。
ただユーザーフォーム(配置されているコントロール種・名称)や基本患者データの項目(ダミーにしても)数など情報がないですよね。

記載内容が的外れな事であったなら無視して下さい。(よくあるExcelのデータベース化かなって思いましたので)
    • good
    • 2

No.5です。



No.9の回答にコメントもらったとおり、Ctrl+dです。Ctrl+bは混乱を招くので書き換えるか、消すかしておいてください。
ちなみに、マクロの『'』アポストロフィで始まる文はコメント行として認識されますので、マクロの動作には影響しません。
    • good
    • 0

No.5です。



以下のとおり回答します。

>オプション → ショートカットキー のところに『d』を入力とはどうすればいいのでしょうか

ショートカットキーの登録手順は添付図を参照です。


>また直接プログロムを走らせるとFor i = r1 To r2のところで 定義されていないとか出てくるんです。

iとjの変数宣言ができていませんでした。『' Keyboard Shortcut: Ctrl+d』の次の行に以下の2行を追加ください。
Dim i As Single
Dim j As Single
「エクセルでのコピーペースト」の回答画像8
この回答への補足あり
    • good
    • 0

フォームから名前を入れて、年齢や処方内容を呼び出したいとのことですが、もしかして、この呼び出しの処理をコピーペーストで行いたいということですか?なかなかユニークな発想ですね?通常は次のように代入するものだと思うのですが・・・。


想像力が付いていけそうに無いので、これで失礼します。

Private Sub UserForm_Initialize()
ComboBox1.Text = Range("A1").Value
End Sub
    • good
    • 0

コンボボックス?・・・というのが分からないのですが、ひとつのセルに張り付けるのであれば、次の手順で出来ると思います。


まず、添付画像のようにクリップボードを表示した状態で、A1:B2セルをコピーします。その後、ペースト先のセルを編集状態(F2押下)にして、クリップボード上の張り付けたい情報を選択します。
「エクセルでのコピーペースト」の回答画像6
この回答への補足あり
    • good
    • 0

No.3さんの添付図のようなことがやりたいという前提で回答します。



通常の方法では簡単には無理だと思いますので、マクロで対応しました。
マクロをショートカットに登録すれば、通常のコピペと同様に使えます。
以下手順で行ってください。

◆手順
1.以下のマクロを標準モジュールに貼付けます。
2.メニュー → 開発 → マクロ から標準モジュールに入れたマクロ『area_copy』を選択して、オプション → ショートカットキー のところに『d』を入力してOKとします。マクロの画面はキャンセルで閉じます
3.手順1,2にて、範囲選択してCTRL+dとすればその範囲のコピーが行えるようになりました。(マクロを実行するのと同じ結果です)
4.貼付けは、通常どおりのCTRL+v、またはメニューの貼付け、または右クリックの貼付け、でできます。

※1 このマクロでは、コピー元セル間の区切り文字として半角スペースを入れています。別の文字にしたい場合には、マクロ中の kugiri_moji=" " の部分を編集ください。 
※2 選択範囲が2×2だけでなく、任意の選択範囲に対応しています。

◆マクロ
Sub area_copy()
' 複数セルをコピーして、一つのセルに貼付け
' Keyboard Shortcut: Ctrl+d
Dim buf As String
Dim CB As DataObject
Dim myStr As String
Dim cellStr As String
Dim r1 As Single
Dim r2 As Single
Dim c1 As Single
Dim c2 As Single
Dim kugiri_moji As String

kugiri_moji = " "        '←←← " "で囲まれた文字が区切り文字として入ります(変更可)
r1 = Selection.Row
r2 = Selection.Row + Selection.Rows.Count - 1
c1 = Selection.Column
c2 = Selection.Column + Selection.Columns.Count - 1
For i = r1 To r2
For j = c1 To c2
cellStr = Cells(i, j)
myStr = myStr + kugiri_moji + cellStr
Next j
Next i

Set CB = New DataObject
buf = myStr
With CB
.SetText buf ''変数のデータをDataObjectに格納する
.PutInClipboard ''DataObjectのデータをクリップボードに格納する
.GetFromClipboard ''クリップボードからDataObjectにデータを取得する
End With

End Sub
この回答への補足あり
    • good
    • 0

> エクセルでユーザーフォームの中のコンボボックス


こちら↓のようなものを用意したのですか?
https://excel-ubara.com/excelvba3/EXCELFORM011.h …
だとしたら、複数行の表示は無理だと思う。

テキストボックスならば、No.2の回答にある手順で可能です。
MultiLineプロパティをTRUEにすることで、改行に対応できます。
https://detail-infomation.com/vba-textbox-proper …
    • good
    • 0

なに?こういう事?一度テキスト化すれば?

「エクセルでのコピーペースト」の回答画像3
    • good
    • 0

単純なコピーペーストだと無理だと思う。


Excelではコピーした状態で、数式バーに直接貼り付けることが
できないので、1セル内に表示できません。
(これは[ F2 ]キーなどでセルの編集状態にしても同じ)

対応方法の例:

A1:B2の範囲を選択して、メモ帳などに貼り付けます。
メモ帳に貼り付けたものをコピーし、別ワークシートの特定セルに
数式バーまたは[ F2 ]キーなどで編集状態にして貼り付けます。
改行部分も含まれるので2行で表示されているはずです。
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!