![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
前に教えてもらったマクロ何ですが、
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("V4:AO28")
' // 転記先範囲定義
Set rDst = Me.Range("AQ5:AT5,AQ6:AT6")
' // 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
この質問をして
複数の範囲を指定したい場合、
マスタ範囲定義 Set rSrc = Me.Range("V4:AO28")の所を
1 B4:AB22
2 B27:AB45
3 B50:AB68
4 B73:AB91
5 B96:AB114
6 B119:AB137
7 B142:AB160
8 B165:AB183
9 B188:AB206
10 B211:AB229
11 B234:AB252
12 B257:AB275
転記先範囲定義Set rDst = Me.Range("AQ5:AT5,AQ6:AT6")の所を
1 AE5:AH5、AE6:AH6
2 AE28:AH28、AE29:AH29
3 AE52:AH52、AE53:AH53
4 AE75:AH75、AE76:AH76
5 AE98:AH98、AE99:AH99
6 AE121:AH121、AE122:AH122
7 AE144:AH144、AE145:AH145
8 AE167:AH167、AE168:AH168
9 AE190:AH190、AE191:AH191
10 AE213:AH213、AE214:AH214
11 AE236:AH236、AE237:AH237
12 AE259:AH259、AE260:AH260
と複数設定(12個)したい場合どう直せばいいでしょうか?
▼このマクロを教えてもらったのですが、
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim rng As Range
Dim vC As Variant, v As Variant
Dim k As Long
vC = Array( _
Array("B4:AB22", "AE5:AH6"), Array("B27:AB45", "AE28:AH29"), _
Array("B50:AB68", "AE52:AH53"), Array("B73:AB91", "AE75:AH76") _
)
k = LBound(vC)
If (Target.Value = "") Then Exit Sub
For Each v In vC
If (Not Intersect(Target, Range(v(k))) Is Nothing) Then Exit For
Next
If (IsArray(v)) Then
On Error Resume Next
With Range(v(k + 1))
.Value = .Value
Set rng = .SpecialCells(xlCellTypeBlanks)(1)
End With
On Error GoTo 0
If (rng Is Nothing) Then
MsgBox "もう書けない", vbInformation
Else
rng.Value = Target.Value
Cancel = True
End If
End If
End Sub
今度は
C列のC5をクリックしたらC5の値が→AE5
D5の値が→ AJ5
R5の値が→AO5
T5の値が→AT5
V5の値が→AY5
Vの値が→BD5
表示するのは4個までAE5:AH5 AJ5:AM5、AO5:AR5、AT5:AW5、AY5:BB5、BD5:BG5と
それぞれ一括転記するマクロを教えてほしいです。
後 C列のC5をクリックしたらC5の値が→AE5(これはAE5:AH5だけ)
D5の値が→ AE6
R5の値が→AE7
T5の値が→AE8
V5の値が→AE9
Vの値が→AE10
と下に表示するマクロを教えてほしいです。
表が12個あり1から12までの表に同じ事が出来るマクロです。
1 B4:AB22
2 B27:AB45
3 B50:AB68
4 B73:AB91
5 B96:AB114
6 B119:AB137
7 B142:AB160
8 B165:AB183
9 B188:AB206
10 B211:AB229
11 B234:AB252
12 B257:AB275
No.2ベストアンサー
- 回答日時:
こんにちは
質問内容をきちんと把握していませんが、ざっと見る限り、セル位置を変えるだけの質問内容のように見受けられます。
>と複数設定(12個)したい場合どう直せばいいでしょうか?
セル位置を変えたものを複数作成して、全部実行させれば良いだけではないでしょうか。
コードは長くなるけれど、内容が同じならちゃんと動作するはずです。
No1様もおっしゃってますが、何かあるごとに『作って!』と言って、ただ待っているだけでは、目的の作業をいつ完成できるかの目途もたたないどころか、できるのかどういかさえわからないというあやふやな状態にいつもあるということを意味することになりますよ。
No.1
- 回答日時:
(´・ω・`)
全部他人任せ?
理解できていないならそのまま使うしかないよ。
作業依頼はここでは禁止されています。
以前答えてくださった人は、サンプルとしてマクロのコードを示し理解を促したのでしょう。
それを理解できないということは答えてくださった人にとても失礼なことをしているわけです。
・・・本題・・・
そのコードの中の何が分かりませんか?
具体的に何が分からなくて修正できないのかを示してください。
まったく分からないというのであれば、
・素直に「分かりません。自力では解決できません」と謝罪しながら提出する。
・別の方法を考える。
ということになります。
・・・余談・・・
自力で目の前にある問題を処理できるようになることが「疑問の解決」です。
他の人に代わりにやってもらうことは「疑問の先送り」にしかなりません。
ここはQ&Aサイトであるということを忘れないようにしましょう。
ごめんよ。
こんな質問してると、ほんとマジで自分のためにならないから。
「根本的に解決できるようになるか」「諦めるか」を早いうちに決めないと面倒なことになるよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語 exitの使い方
-
フォームを開くときに、コンボ...
-
VB6.0-整数と余りを求める
-
long型のランダムな値を返す方法
-
足して100になるような乱数のア...
-
VBAの定数の使い方で、計算値を...
-
C#で動的にコントロールを取得...
-
Excel-vba 文字列と変数を...
-
VBA EXCEL セルのコピーについて
-
世界のナベアツ
-
.htaccessで弾きたい(Options不可)
-
Excel VBAで値貼り付けのプログ...
-
vbaで極大値を抽出する方法
-
DataGridについて
-
フリーランタイマーの時間差分...
-
数字の位ごとの値を表示するプ...
-
C言語(arduino)での条件分岐...
-
UWSCのcallについて
-
processing エラーで、 "cannot...
-
vbsでテキストファイル内の文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 exitの使い方
-
フォームを開くときに、コンボ...
-
Excel-vba 文字列と変数を...
-
VB6.0-整数と余りを求める
-
C#で動的にコントロールを取得...
-
数字の位ごとの値を表示するプ...
-
VBAで配列のNULL判定
-
足して100になるような乱数のア...
-
DWORDって
-
世界のナベアツ
-
VBAの定数の使い方で、計算値を...
-
Access2003 オートナンバーの現...
-
コンボボックスの名前を変数に...
-
相関係数p値の出し方
-
ラジオボタンの値の取得につい...
-
フリーランタイマーの時間差分...
-
DataGridView 複数行同時変更...
-
10進数をアスキーコードに変換
-
1つ前の値を変数に保存する方法
-
vbaで極大値を抽出する方法
おすすめ情報