VBAの超初心者ですが、請求書を作っているところです。
A列はボタンを置くためだけに作った欄外列です。
ある任意行のAセルにボタンを置いています。
ご質問は;
そのボタンを押せばアクティブセルが現在どこにあってもそのボタンが置いてある行の直ぐ下に一行挿入される。その挿入行は、例えばNo1行に書式を埋め込んだセル群を置いてあり、その行を参照してコピー・ペーストする
という記述はどう書けば良いでしょうか。
アクティブセルを行の特定場所に置けばそこからの相対参照が出来ますが、「アクティブセルがどこにあっても」という記述が良く解りません。
No.1ベストアンサー
- 回答日時:
おおよそのところは
VBEの画面のProjectのSheet1をダブルクリックして、
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
が出てくると思いますが、
(3)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 1 Then
Rows(Target.Row).EntireRow.Insert
End If
End Sub
で良いと思うのですが、
>例えばNo1行に書式を埋め込んだセル群を置いてあり、その行を参照してコピー・ペーストする
の意味が良くわかりません。
Sheet1のシート全体の第1行目の値をコピーするのでしょうか。
書式だけをコピーするのでしょうか。
マクロの記録をとれば、そのコードはわかります。
(1)
Sub Macro1()
Rows("1:1").Select
Selection.Copy
Rows("15:15").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End Sub
これをRows("15:15").Select
で、挿入後のSelectionを崩さないようにするため
(2)
Sub Macro1()
Rows("1:1").Copy
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End Sub
にして、上記(2)の中身を、(3)のInsertのあとに貼り付ければよい。
この回答への補足
いもがしさん、いつもありがとうございます。やっとVBAの入り口です。
ご回答記述の理解にかなり手間取ると思います。しばらくお待ち下さい。
コピペ云々の意味は;
見積書に必要な内容・単価・金額などの各セル毎に書式や関数を埋め込んだサンプル行をシートトップに置いて置き、デフォルトでは各項目ごとに1行しかつくらない見積行をボタンを押して増やしてはサンプル行をペーストし、それに値を記入したいのです。これをしたいばかりにVBAに挑んでいます。マクロ記録は簡単なのですがねぇ。
ご回答を理解しようとして気ばかりあせっています。どうやら私のご質問自体が私の能力を超えたものだったようです。折角頂いたご回答ですが、これは保存して将来に備えます。最初にご回答頂いたので良回答とさせて頂きますが、これに懲りずに又よろしくお願いします。
No.3
- 回答日時:
mariocec様、こんばんは。
Formボタンの場合は、
RngAddress = ActiveSheet.Buttons(1).BottomRightCell.Offset(1).Address(0, 0)
このようになります。
>増行による選択範囲の変更記述が解らなかった為
Set Rng = Range("B2", Range("B65536").End(xlUp))
myAddress = Rng.Address
先頭が決まっていれば、このように範囲は取れますが、
例えば、B11:の場合は、
=SUM($B$2:$B10)
とすれば、その間を増やしても、引数の範囲は変化していきます。
折角頂いたご回答ですが、今の力ではどうやっても理解出来ませんでした。同じ結果が出るようなマクロ記録を考えてやり直します。これに懲りずに又よろしくお願いします。ご回答評価が出来ません、いもがしさんより半日遅れという理由だけで次点とさせて頂きます。
No.2
- 回答日時:
こんにちは。
>「アクティブセルがどこにあっても」
まったく、アクティブセルは関係ないのではありませんか?
ボタンの位置の問題だと思います。
ボタンの種類が書いてありませんが、一般的に、コントロールツールのボタンだと解釈いたします。(なぜかというと、改編は、製作者だけができるからです。)
Private Sub CommandButton1_Click()
Dim RngAddress As String
RngAddress = CommandButton1.BottomRightCell.Offset(1).Address(0, 0)
Range(RngAddress).EntireRow.Insert
Range("A1").EntireRow.Copy
Range(RngAddress).EntireRow.PasteSpecial xlPasteFormats
Application.CutCopyMode = False
End Sub
なお、ボタンの位置によって、Offset(1) が不要な場合があります。
+-----+
| |
+-----+ ←ここが、セルの境目に掛かっている場合
この回答への補足
ウエンディさん、いつもありがとうございます。自分で記述出来るようになるまではかなり掛かりそうですね。アクティブセル位置は無関係なのですか?。ボタンを押すこととボタンがあるセルを選択することとは無関係のはずだと思い、相対位置は最初に選択されていたセルからの乖離で決定すると考えていました。
増行させる為のボタンはフォームのオプションボタンを行頭に置いて、増行するたびにボタンも繰り下がらせる予定です。各項目のトータルは小計の直ぐ上の見積行を非表示にして使わないでおけばシグマは途中が何行増えても常に有効ですから何も記述をしなくて良いようです。(増行による選択範囲の変更記述が解らなかった為の苦肉の策)
ご回答の記述はこれから研究します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Visual Basic(VBA) ExcelのVBAを使い、複数シートの同一箇所を、同一条件にて一括でソルバーを回す方法について 1 2022/04/23 11:49
- Excel(エクセル) 【マクロ】ボタンを押すごとに、A1セル、A2セル、A3セルに日付を入力 3 2023/01/25 00:12
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
- Excel(エクセル) Excel 特定セルの数値を参照したセルの0表示が空白にならないのはどうしてか? 3 2022/04/28 22:23
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA一覧取得 再投稿
-
VBA指定行削除
-
VBA一覧取得
-
エクセルVBAについて
-
VBA ユーザーフォーム ボタンク...
-
VBA 複数のエクセルから一つの...
-
【ExcelVBA】値を変更しながら...
-
VBAに詳しい方教えてください。
-
VBA listBoxについて
-
Vba 実数および実数タイプの変...
-
現在のブックを閉じないで、マ...
-
Excelのマクロについて教えてく...
-
エクセルのマクロについて教え...
-
VBA マウスクリックとキーボー...
-
VBA レジストリの値の読み方に...
-
2つのマクロでチェックボックス...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ExcelのVBAコードについて教え...
-
【マクロ】1つのマクロの中に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBA 定義されたプロージ...
-
Excel-VBAのmsgBox()の不思議
-
【VBA】マクロの入ったファイル...
-
VBA 複数条件の分岐処理の上手...
-
現在のブックを閉じないで、マ...
-
VBAで各列の"+"と"o"の合計数を...
-
VBAに詳しい方教えてください。
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ユーザーフォームに別シートか...
-
エクセルのマクロについて教え...
-
ExcelVBA シート名を複数セルか...
-
エクセルのマクロについて教え...
-
VBA listBoxから
-
Excelのマクロについて教えてく...
-
エクセルのマクロについて教え...
おすすめ情報