No.2ベストアンサー
- 回答日時:
こんばんは。
自分が使うなら、どう作るかということで作ってみました。
だから、忠実に、ご質問者さんのご要望に叶うかどうかは分かりません。
ですから、無視なさっても、構いません。
ただ、これは、どちらかというと、ショートカットやQATがふさわしいような気がします。QATの場合は、カスタムプロパティに登録してからのコピーが良いと思います。
仕様:
フォームコントロールのボタン(*文末で、理由を述べます)で、
ボタンを押しますと、Sheet2 のA1 セルがコピーされます。
コピーは、書式を含めてですが、値やら、書式やらといろいろ注文がありましたら、
ActiveCell.PasteSpecial xlPasteAll
xlPasteAll の部分を、任意に書き換えます(Helpにも出てきます)
次に、シフトキーを押しながら、ボタンを押しますと、ActiveCell が、結合セルでない限りは、B2を含めて、コピーします。
しかし、ActiveCell が、結合セルの場合は、結合セルは、解除され、通常のセルに戻ります。
'//標準モジュールがベター
Option Explicit
#If Win64 Then
Private Declare PtrSafe Function GetAsyncKeyState Lib "user32" (ByVal vKey As _
Long) As Integer
#Else
Private Declare Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) _
As Long
#End If
Private Const VK_CONTROL = &H10 'Shift_Key
Sub ボタン1_Click()
With Worksheets("Sheet2")
If GetAsyncKeyState(VK_CONTROL) = False Then
If Not ActiveCell Is .Range("A1") Then
.Range("A1").Copy
ActiveCell.PasteSpecial xlPasteAll
End If
Else
If ActiveCell.MergeCells Then
ActiveCell.MergeCells = False
ElseIf Not ActiveCell Is .Range("B2") Then
.Range("B2").MergeArea.Copy
ActiveCell.PasteSpecial xlPasteAll
End If
End If
End With
End Sub
'//
*ActiveX コントロールか、フォームコントロールの違いなのですが、
#1さんは、ActiveX コントロールをお使いになっていますが、昨今の海外の情報で、ActiveX コントロールが不具合を起こすように言われているだけでなく、私のシート(Excel 2013 32bit)でも、まったく用をなさない時があります。フォームコントロールは、生き残っても、ActiveXコントロールは全滅状態の時を何度も繰り返して、今日のスタイルになっています。理由は、おそらくは、ActiveX コントロールの複雑な構造だからか、Excel用のActiveコントロールが、バージョンを上げる事に、減ってきているからではないかと思われますが、確たる証拠はありません。今後、上位バージョンでどう変わっていくのか、不明です。
No.1
- 回答日時:
こんばんは!
>アクティブセルにコピーできるようにしたい・・・
アクティブセルはSheet2以外のセルなのでしょうか?
>ボタンを押すと・・・
アクティブになっているシート上にコマンドボタンを挿入するとします。
Private Sub CommandButton1_Click()
ActiveCell = Worksheets("Sheet2").Range("A1")
End Sub
ではどうでしょうか?
※ 「A1」部分はSheet2のA1が結合セルであっても問題ありません。
すなわち
>シート2の結合したセル(B2・B3・C2・C3)
は A1 を
B2・C2 に置き換えれば大丈夫だと思います。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Visual Basic(VBA) VBAマクロでシートコピーした新シートにコピー元シートとの計算式の入れ方を教えて下さい。 5 2022/11/20 09:48
- Excel(エクセル) ExcelVBA メモ帳を起動し名前を付けて指定フォルダに保存 2 2022/04/18 13:15
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 11:55
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
結合されたセルの一部を変更す...
-
エクセル 0:00 の時間をカウン...
-
エクセルでハイパーリンクのコピー
-
アクティブセルとそのセルに隣...
-
エクセルのセルの右下の角の十...
-
Word文書にパスワードをマクロ...
-
エクセルの結合セル内に文章を...
-
【Excel】 色の一致するセル数...
-
エクセル アンド関数の繰り返...
-
VBA ダブルクリックでセルの真...
-
INDEXとMATCH関数で#N/Aが出る...
-
エクセルの計算式でコンマを付...
-
PowerPointの表内のカンマ
-
エクセルで「-3E+06」と...
-
エクセルで行の一番上にセルに...
-
エクセルに計算式が入らない!
-
エクセルでエンターを押すと隣...
-
エクセル 常に桁区切りにしたい
-
2017/5/15日から半年後の計算し...
-
文字列を含む連続データの入力
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでハイパーリンクのコピー
-
エクセルでセル内改行の1行目...
-
結合されたセルの一部を変更す...
-
エクセル 0:00 の時間をカウン...
-
【Excel】 色の一致するセル数...
-
エクセルの結合セル内に文章を...
-
エクセルのセル内で改行コピー...
-
アクティブセルとそのセルに隣...
-
エクセルで 来年の曜日の自動設定
-
VBAからのHYPERLINK関数のアド...
-
Word文書にパスワードをマクロ...
-
Excel vba 毎月の第○ △曜日を求...
-
エクセル 行も列もバラバラの入...
-
VBA セル内で改行またはカンマ...
-
Excel セル貼り付けができません
-
エクセルで納期遅れのセルを色...
-
エクセルのセルの右下の角の十...
-
Excel VBAで可視セルをコピーし...
-
MSNメッセンジャーにエクセルか...
-
エクセルVBAで外部ソフトFFF...
おすすめ情報