No.1ベストアンサー
- 回答日時:
こんばんは。
何と無く思いついたものですが一案です。
すみませんが、コメント等を余計に入れておきましたのでコードの解説
等は省略させて下さい。
' // シートモジュール
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim rSrc As Range
Dim rDst As Range
Dim r As Range
' // マスタ範囲定義
Set rSrc = Me.Range("U4:Y34")
' // 転記先範囲定義
Set rDst = Me.Range("B7:B26,E7:E26,J7:J26,M7:M26,P7:P26")
' // Dblクリックされたセルがマスタの範囲か?
If Not Intersect(Target, rSrc) Is Nothing Then
' // 転記先が既に埋まってないか?
If Application.CountA(rDst) = rDst.Cells.Count Then
' // 埋まっている場合
MsgBox "もう書けないっぽい", vbInformation
Else
' // (1)とりあえず転記先範囲の先頭セルを転記先に仮設定
Set r = rDst.Cells(1)
' // (2)その他空きセルを探す(空きセルのうち最初のセル)
' // 見つからない場合は、(1)が採用される
On Error Resume Next
Set r = rDst.SpecialCells(xlCellTypeBlanks).Cells(1)
On Error GoTo 0
' // 転記実行
r.Value = Target.Value
End If
' // Dblクリックで編集モードになるのをキャンセル
Cancel = True
End If
' // 後始末
Set rSrc = Nothing
Set rDst = Nothing
End Sub
分かりやすくコメント頂き、ありがとうございます。
まだ、何となくしか理解できてない事、申し訳なく思います。
もう少し勉強してすべて理解できるように勉強します。
これで作業が簡素化され、ミスも減ると思います。
本当に助かりました。ありがとうございます。
No.2
- 回答日時:
あったら便利な機能ですが、したい課題だけ書いて、基本的に丸投げになっている。
色々勉強してから質問したら。ーー
必要な要素(小)技術(下記の(1)-(4)など)も捉えられていないようだ。
(1)>U4:Y34のいずれかの
とダブルクリックしたセルがこの範囲か調べる方法
#1のご回答にも出ているのが高等な方法です。
素人的には
列がUからY、行が4から34をIF文でANDを使い聞く方法もある。
例 部分テスト例
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
If Target.Column <= Range("Y1").Column And Target.Column >= Range("U1").Column _
And Target.Row <= 34 And Target.Row >= 4 Then
MsgBox "aaa"
End If
End Sub
(2)>B7にコピーします
はダブルクリックしたセル(「Targetセルの値をB7に代入(=ターゲットセル)でよいでしょう。B7が動く・変化するのが難しいが、下記。
(3)>B7にはすでに値が入力されているのでB8へコピー
その列の、現状の一番下の行を捉える定石がある。その+1した行
に代入すればよい。
納得のためのテスト例
Sub test01()
d = Range("B1000").End(xlUp).Row
MsgBox d
End Sub
このd+1行に代入すればよい。
(4)B7~B26→E7~E26→J7~J26→M7~M26→P7~P26と
順にセルを移動させたいのです。
(3)の代入を行っていて26行目になったら、E,J,M列の第7行に行くということか。
3列ごと目に移動しているようにも見えるのだが、G列はどうなった。飛ばすのか。これ(飛び飛びだと)でむつかしい点が増える。
ーー
この制御をどうするかテスト例
順次一定値だが、決まった範囲に決まった順序(ダブルクリックの順序)で、値をセットしていく
Sub test01()
ca = Array(2, 5, 10, 13, 16, 99) 'B,E,J,M,P列
i = 0
C = ca(i)
r = 7
p1:
If C > 16 Then Exit Sub
d = Cells(1000, C).End(xlUp).Row
If d >= 26 Then
i = i + 1
C = ca(i)
MsgBox C
r = 7
GoTo p1
End If
If d + 1 < 7 Then d = 6
Cells(d + 1, C) = "111"
GoTo p1
End Sub
ーー
これらの要素技術を組み合わせることになるが、参考になるかな。
まあ初心者がやるには難しすぎると思うが。VBAでも中級の上以上と思うが。
大変丁寧にお答え頂き、ありがとうございます。
初心者なのにもかかわらず、こんな難しいことを
しようとしていたのかと、改めて認識いたしました。
大変申し訳ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 11:55
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Visual Basic(VBA) VBAマクロでシートコピーした新シートにコピー元シートとの計算式の入れ方を教えて下さい。 5 2022/11/20 09:48
- Visual Basic(VBA) シート間で同じ値があったらコピペ 1 2022/05/08 09:39
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
- Excel(エクセル) シート参照を含む数式を連続コピー 3 2022/12/10 11:42
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
このQ&Aを見た人はこんなQ&Aも見ています
-
好きな人を振り向かせるためにしたこと
大好きな人と会話のきっかけを少しでも作りたい、意識してもらいたい…! 振り向かせるためにどんなことをしたことがありますか?
-
フォントについて教えてください!
みなさんの一番好きなフォントは何ですか? よく使うフォントやこのフォント好きだなあというものをぜひ教えてください!
-
これが怖いの自分だけ?というものありますか?
人によって怖いもの(恐怖症)ありませんか? 怖いものには、怖くなったきっかけやエピソードがあって聞いてみるとそんな感覚もあるのかと新しい発見があって面白いです。
-
【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
【お題】 ・こんなおせち料理は嫌だ
-
2024年においていきたいもの
2024年もあとわずかですが、いま抱えているもので「これは来年にもっていきたくないなぁ」というものを教えて下さい。
-
エクセル マクロ クリックしたセルの内容を貼り付け
Excel(エクセル)
-
エクセルVBAでダブルクリックをしたらA列のデータが別シートに転記されるにはどうしたらよいですか?
Visual Basic(VBA)
-
エクセル クリックした値を転記
Excel(エクセル)
-
-
4
エクセルでセルをダブルクリックしたらそのブックの別のシートに飛ぶ動作
Excel(エクセル)
-
5
エクセル ダブルクリック入力の範囲が複数の場合
Excel(エクセル)
-
6
選択したセルでダブルクリックをするとエクセルマクロによりそのセルがコピ
Visual Basic(VBA)
-
7
エクセルマクロ セルをクリックするたびに記号を入力
Excel(エクセル)
-
8
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
9
エクセルで特定の値を含む列のみVBAで非表示にしたい
Excel(エクセル)
-
10
エクセル 複数範囲の中の1セルを転記させる
Visual Basic(VBA)
-
11
VBA 空白行に転記する
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
自分の左隣のセル
-
SUMIF関数で、「ブランク以外を...
-
文字列から英数字のみを抽出す...
-
エクセルで、A2のセルにA3...
-
エクセル1行おきのセルを隣の...
-
エクセルで特定のセル内にだけ...
-
エクセル 12進数
-
【Excel】4つとばしで合計する方法
-
セルを結合した時のエクセル集...
-
Excelで大量のセルに一気に関数...
-
EXCELのcountif関数での大文字...
-
エクセルで、指定の値よりも大...
-
excelで、空白を除いてデータを...
-
EXCELでマイナス値の入ったセル...
-
Excelでなぜこのような式をつか...
-
Excelで日付が入っていたら金額...
-
エクセルで年月日から月日のみへ
-
条件付き書式の色付きセルのカ...
-
同一セル内の重複文字を削除し...
-
エクセルで数字の組み合わせを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
自分の左隣のセル
-
SUMIF関数で、「ブランク以外を...
-
文字列から英数字のみを抽出す...
-
excelで、空白を除いてデータを...
-
エクセルで、指定の値よりも大...
-
エクセル1行おきのセルを隣の...
-
セルを結合した時のエクセル集...
-
エクセルで特定のセル内にだけ...
-
同一セル内の重複文字を削除し...
-
EXCELでマイナス値の入ったセル...
-
エクセルで、A2のセルにA3...
-
EXCELのcountif関数での大文字...
-
【Excel】4つとばしで合計する方法
-
Excelで大量のセルに一気に関数...
-
エクセルで年月日から月日のみへ
-
エラー「#REF」の箇所を置き換...
-
エクセルに入力後、別シートの...
-
エクセル 12進数
-
エクセル関数/任意の桁数の数...
-
条件付き書式の色付きセルのカ...
おすすめ情報