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

添付画像のような表を作成しました(添付の表は情報保護のため同類のサンプルです)。

①結合されたA列をダブルクリックして他の(シートの)セルに、$A$13の「A」と合わせて転記する。
②B列やC列をダブルクリックして他の(シートの)セルに、結合されたA列の内容と合わせて転記する。

以上の2点をしたいのですが(添付画像にしたいことの例を書いています)、マクロでどのようなコードを組めばいいのかわかりません。
他にしたいことがあってマクロを組んでいるのですが、その中に組み込みたいと思っています。

①rc1.Value〈転記先のセル〉 = Range("A13").Value & Target.Value〈$A$13の内容と結合されたA列のセルの内容〉
②rc2.Offset(0, 2).Value〈転記先のセル〉 = Target.Cells(1, 1).Offset(0, -1).MergeArea(1, 1).Value & Target.Value〈結合セルの内容とクリックしたセルの内容〉

このようなコードを書いてみたのですがうまくいかなくて・・・

いまひとつマクロを理解しきれていないところもあるので、理解されてる方が見るとバカなコードを書いてるなぁ、と思われるでしょうが(^^;
すみませんが、よろしくお願いします。

「Excel マクロ セルを選択して結合さ」の質問画像

A 回答 (4件)

言ってることがよくわからないのと


他のシートがどうなっているのかがわからない


結合されたセルは 結合していようがいまいが、
結合前の左上のセル番地がその結合セルの番地になります
    • good
    • 0
この回答へのお礼

書き方が悪くて、すみません。
一応、したいことは添付画像のシートの14行以下のセルをダブルクリックすると、その内容が別のシートにある表の上から順に転記されるようにしています。
ただ、そのときに、あ、い、うのどれをクリックしても必ず「A(あ~うの選択した文字)」と転記される。また、1と2どちらをクリックしても「あ(1か2の選択した文字)」、3と4どちらをクリックしても「い(3か4の選択した文字)」のように転記される。
このようなことがしたいのです。
結合前の左上のセル番地が結合セルのセル番地、というのも知ってはいるのですがそれをどうやって返すかがわからなくて・・・

お礼日時:2020/10/30 14:41

こんにちは、



rc.Value = Range("A13").Value & Target(1).Value


rc.Value.Offset(0, 2).Value = Target.Offset(, -1).MergeArea(1, 1).Value & Target(1).Value

いかがでしょう?
    • good
    • 0
この回答へのお礼

ありがとうございました!!
したいことが完璧にできました。
お世話になりました。

お礼日時:2020/10/31 16:47

こんにちは



存在するパターンのバリェーションがどのくらいあるのか(跨った形が存在するかなど)によって変わってきそうな気がしますが…

とりあえず、添付図の様な単純なもので、色付き部分(A14:C25)をダブルクリックした場合に、関連行の値を13行目のタイトルと合わせて順に取得する例です。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim msg As String, c As Range

If Intersect(Target, Range("A14:C25")) Is Nothing Then Exit Sub
Set c = Target
msg = Cells(13, c.Column).Text & ":" & c.Cells(1, 1).Text

While c.Column > 1
 Set c = c.Cells(1, 1).Offset(, -1).MergeArea
 msg = Cells(13, c.Column).Text & ":" & c.Cells(1, 1).Text & ", " & msg
Wend

Cancel = True
MsgBox "content= " & msg
End Sub
「Excel マクロ セルを選択して結合さ」の回答画像3
    • good
    • 0
この回答へのお礼

なるほど。
クリックしたセルと、合わせて欲しい情報をメッセージボックスで表示するにはこんな方法があるんですね!!勉強になります!
実際にしたいことは、ほかの方のアンサーでできましたがこちらのコードも役立たせていただきます!
ありがとうございました!

お礼日時:2020/10/31 16:52

#2です。

間違いがありましたので訂正いたします。
(すでにご理解いただいていると思いますが)
rc.Value.Offset(0, 2).Value =
コピペミスです。すみません。
rc.Offset(0, 2).Value =
ですね。
Offset(, -1)は0を省略してしまいました。
BeforeDoubleClickでのTargetに対する条件は、
設定済みと理解しています。
    • good
    • 0
この回答へのお礼

わざわざ訂正までしてくださり、ありがとうございました!
回答を下さった皆さんにはお世話になりました。
またお世話になるかもしれませんが、そのときは何卒よろしくお願いします。

お礼日時:2020/10/31 16:54

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

このQ&Aを見た人はこんなQ&Aも見ています