No.9ベストアンサー
- 回答日時:
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
No.11
- 回答日時:
何となくですけど。
最初の質問にある4つのセルのコピペと【補足日時:2019/06/15 16:29】に書かれている補足内容とでは、必要なコード等が合致しないと感じるのは気のせいでしょうか?
>フォームからシートに基本患者データを蓄積してゆき
はどのタイミング(イベント)で実行するのか?(ここは完成されてる?)
>またフォームから名前をいれることにより逆に年齢、処方内容(薬品名、用法、用量など)を呼び出せるようにしたいわけです
と言うならまずは最初の質問内容は目的とは離れている感じがします。
こちらもどのタイミング(イベント)で実施するかもありますがデータの項目内容についての情報が不明確ですし、何より名前を基に基本患者データからデータをチョイスするなら、
ボタンクリックなどで名前が一致した同行のデータを配置しているコントロールに表示(全部ComboBox?)にリストとして追加していくだけと思えます。
なので個人的には『セル範囲を選択してのコピペ』云々ではないのではないかと。
ただユーザーフォーム(配置されているコントロール種・名称)や基本患者データの項目(ダミーにしても)数など情報がないですよね。
記載内容が的外れな事であったなら無視して下さい。(よくあるExcelのデータベース化かなって思いましたので)
No.10
- 回答日時:
No.5です。
No.9の回答にコメントもらったとおり、Ctrl+dです。Ctrl+bは混乱を招くので書き換えるか、消すかしておいてください。
ちなみに、マクロの『'』アポストロフィで始まる文はコメント行として認識されますので、マクロの動作には影響しません。
No.8
- 回答日時:
No.5です。
以下のとおり回答します。
>オプション → ショートカットキー のところに『d』を入力とはどうすればいいのでしょうか
ショートカットキーの登録手順は添付図を参照です。
>また直接プログロムを走らせるとFor i = r1 To r2のところで 定義されていないとか出てくるんです。
iとjの変数宣言ができていませんでした。『' Keyboard Shortcut: Ctrl+d』の次の行に以下の2行を追加ください。
Dim i As Single
Dim j As Single
No.7
- 回答日時:
フォームから名前を入れて、年齢や処方内容を呼び出したいとのことですが、もしかして、この呼び出しの処理をコピーペーストで行いたいということですか?なかなかユニークな発想ですね?通常は次のように代入するものだと思うのですが・・・。
想像力が付いていけそうに無いので、これで失礼します。
Private Sub UserForm_Initialize()
ComboBox1.Text = Range("A1").Value
End Sub
No.6
- 回答日時:
コンボボックス?・・・というのが分からないのですが、ひとつのセルに張り付けるのであれば、次の手順で出来ると思います。
まず、添付画像のようにクリップボードを表示した状態で、A1:B2セルをコピーします。その後、ペースト先のセルを編集状態(F2押下)にして、クリップボード上の張り付けたい情報を選択します。
No.5
- 回答日時:
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
No.4
- 回答日時:
> エクセルでユーザーフォームの中のコンボボックス
こちら↓のようなものを用意したのですか?
https://excel-ubara.com/excelvba3/EXCELFORM011.h …
だとしたら、複数行の表示は無理だと思う。
テキストボックスならば、No.2の回答にある手順で可能です。
MultiLineプロパティをTRUEにすることで、改行に対応できます。
https://detail-infomation.com/vba-textbox-proper …
No.2
- 回答日時:
単純なコピーペーストだと無理だと思う。
Excelではコピーした状態で、数式バーに直接貼り付けることが
できないので、1セル内に表示できません。
(これは[ F2 ]キーなどでセルの編集状態にしても同じ)
対応方法の例:
A1:B2の範囲を選択して、メモ帳などに貼り付けます。
メモ帳に貼り付けたものをコピーし、別ワークシートの特定セルに
数式バーまたは[ F2 ]キーなどで編集状態にして貼り付けます。
改行部分も含まれるので2行で表示されているはずです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
- Excel(エクセル) エクセルからビジオのリンク貼り付け 1 2023/03/30 17:51
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Evernote Simplenoteのコピー&ペースト 1 2022/05/17 14:09
- Excel(エクセル) エクセルでのコピーペースト 6 2022/09/03 07:14
- Visual Basic(VBA) vba 隣のセルに値がある行だけ関数をコピー&ペーストしたい A1 100001 A2 100002 1 2023/01/28 14:29
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Excel(エクセル) vba アクティブシートのA1セルの値を基準に複数のシートコピー&シート名を 6 2023/04/12 18:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
エクセル 数字をすべて○などの...
-
Excel内での検索結果をシート...
-
エクセルでの検索ボックスの作...
-
Excelで、図形内の文字をセルに...
-
Excel ハイパーリンクのURLを別...
-
エクセル 未入力セルがあると...
-
現在のセルの位置を返す関数は...
-
VBA 見つからなかった時の処理
-
Excelでセルをクリックす...
-
クリックすると文章が表示され...
-
セルの内容をテキストボックス...
-
フォントの色を指定して削除出...
-
セルがクリックされた回数をカ...
-
EXCELのセルや文字色の反映
-
Excel:セルの値(文字列)を数...
-
[エクセル VBA]テキストファ...
-
エクセルでページ数をあるセル...
-
太字に設定されているセルの個...
-
Excelで挿入した図をセルの中央...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
エクセル 数字をすべて○などの...
-
Excel内での検索結果をシート...
-
クリックすると文章が表示され...
-
Excelでセルをクリックす...
-
マクロを実行すると画像がズレ...
-
太字に設定されているセルの個...
-
Excelで、図形内の文字をセルに...
-
Excelで挿入した図をセルの中央...
-
フォントの色を指定して削除出...
-
Excel ハイパーリンクのURLを別...
-
エクセルでPDFリンクを大量...
-
エクセル 未入力セルがあると...
-
現在のセルの位置を返す関数は...
-
VBA 見つからなかった時の処理
-
EXCELのセルや文字色の反映
-
【EXCEL】先週の月曜日の日付を...
-
セルの値が変ると自動でマクロ...
-
エクセルでセルをダブルクリッ...
-
アポストロフィーの一括挿入 ...
おすすめ情報
ありがとう、エクセルでユーザーフォームの中のコンボボックスつくり そこに4コマ (4セル)を貼り付けようとするのですが、どうも指示通りやっても最初の一行しか貼り付けることできない。
ご丁寧にありがとう。
ニュー → 開発 → マクロ から標準モジュールに入れたマクロ『area_copy』を選択して、オプション → ショートカットキー のところに『d』を入力してOKとします。ですが
マクロ『area_copy』は貼り付けたのですが、
オプション → ショートカットキー のところに『d』を入力とはどうすればいいのでしょうか、未熟で申し訳ない。
また直接プログロムを走らせるとFor i = r1 To r2のところで 定義されていないとか出てくるんです。(iのところ)
手順としてはおおむねやれると思いますが・・。
コンボボックスが出てくるのは実はフォームでマクロをつくっていて、氏名、年齢、処方内容を入れる、もしくは氏名を入れたら 処方内容を呼び出せるとするそんなフォームでの処方内容のところをコンボボックスにしましたということです。フォームからシートに基本患者データを蓄積してゆき、またフォームから名前をいれることにより逆に年齢、処方内容(薬品名、用法、用量など)を呼び出せるようにしたいわけです。ご教授のことは写真のようにすればいいことがわかりましたが、写真のような形にすると入ってゆかないコンボボックスに入って行かない・。
ご親切に何度も丁寧な画像まで載せていただいての説明 有難うございます。感謝申し上げます。
できました。Ctr+d も、そして すべて掲載も・・・。
ただ、コピー元が 薬品名 数量、行を変えて薬品名、数量という具合になってゐるので、できれば見やすいように写真の画像のようにしたかったが これ以上 お願いはできませんので無理な要求は致しません。
何度も有難うございます。恐縮です。Ctrl+b はCtrl+dでしたですね。Sub area_copy() 内容 差し替えましたが、最初の一行だけでその一行の最初に " が入っていますが・・・。