
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も見ています
-
性格悪い人が優勝
できるだけ性格悪い人になって回答をお願いします。
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
これ何て呼びますか
あなたのお住いの地域で、これ、何て呼びますか?
-
単二電池
あなたの家に何本ありますか?
-
カラオケの鉄板ソング
歌えばその場が絶対盛り上がる「鉄板ソング」を教えてください!
-
エクセル マクロ クリックしたセルの内容を貼り付け
Excel(エクセル)
-
エクセルでセルをダブルクリックしたらそのブックの別のシートに飛ぶ動作
Excel(エクセル)
-
エクセルVBAでダブルクリックをしたらA列のデータが別シートに転記されるにはどうしたらよいですか?
Visual Basic(VBA)
-
-
4
エクセル クリックした値を転記
Excel(エクセル)
-
5
選択したセルでダブルクリックをするとエクセルマクロによりそのセルがコピ
Visual Basic(VBA)
-
6
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
7
エクセル ダブルクリック入力の範囲が複数の場合
Excel(エクセル)
-
8
マクロ1があります。 A1のセルをダブルクリックすると、 マクロ1が動くような仕組みを 作成したいの
その他(Microsoft Office)
-
9
エクセルで特定の値を含む列のみVBAで非表示にしたい
Excel(エクセル)
-
10
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
11
エクセルで隣(右or左)のセルと同じ文字色にしたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字列から英数字のみを抽出す...
-
SUMIF関数で、「ブランク以外を...
-
自分の左隣のセル
-
excelで、空白を除いてデータを...
-
エクセルで特定のセル内にだけ...
-
セルを結合した時のエクセル集...
-
エクセルで、指定の値よりも大...
-
エクセルで年月日から月日のみへ
-
EXCELのcountif関数での大文字...
-
同一セル内の重複文字を削除し...
-
エクセル1行おきのセルを隣の...
-
EXECL バーコード生成でBarCode...
-
エクセルに入力後、別シートの...
-
エクセルで、A2のセルにA3...
-
Excelで大量のセルに一気に関数...
-
EXCELでマイナス値の入ったセル...
-
エクセルでエンターを押すと任...
-
セルの結合がされた表をHLOOKUP...
-
条件付き書式の色付きセルのカ...
-
【Excel】4つとばしで合計する方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SUMIF関数で、「ブランク以外を...
-
自分の左隣のセル
-
文字列から英数字のみを抽出す...
-
エクセルで、指定の値よりも大...
-
エクセル1行おきのセルを隣の...
-
セルを結合した時のエクセル集...
-
エクセルで特定のセル内にだけ...
-
excelで、空白を除いてデータを...
-
EXCELのcountif関数での大文字...
-
エクセルで、A2のセルにA3...
-
同一セル内の重複文字を削除し...
-
EXCELでマイナス値の入ったセル...
-
Excelで大量のセルに一気に関数...
-
【Excel】4つとばしで合計する方法
-
エクセルで年月日から月日のみへ
-
EXECL バーコード生成でBarCode...
-
条件付き書式の色付きセルのカ...
-
エクセルに入力後、別シートの...
-
週の労働時間を計算するエクセル
-
エクセル関数/任意の桁数の数...
おすすめ情報