プロが教える店舗&オフィスのセキュリティ対策術

マクロの初心者です。エクセル2010を使用しています。
以下のようなマクロをいろいろ検索し参考にして作りましたが、
シート1でコピーし、シート2の任意のセルに貼り付けをして、そのままシート2で終了するには、どうすればよいでしょうか。
現在では、シート2のセルに貼り付け、その他の処理を終えると、シート1のコピー元に戻って終了してしまいます。
そして、このマクロを個人用マクロとして、すべてのブックで使用するのは可能でしょうか。
その場合はどうすればよいのでしょうか。
アドバイスをよろしくお願いします。

Sub 値と横連結()
Application.DisplayAlerts = False
With Application.InputBox _
("貼付先セルをクリック")
Selection.Copy

.PasteSpecial paste:=xlPasteAll, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.PasteSpecial paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False

With Selection
If Selection.Count = 1 Then Exit Sub
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
With Selection.Font
.Name = "MS Pゴシック"
.Size = 8
End With
Selection.Borders.LineStyle = xlContinuous
Selection.Borders.Color = -10375249
Selection.Merge True
Application.DisplayAlerts = True
End With
End Sub

A 回答 (1件)

個人用マクロブックの作り方:


開発タブから「新しいマクロの記録」を開始する
マクロの保存先は個人用マクロブックにする
てきとーに操作し、記録終了する
エクセルを一回再起動し、その際に個人用マクロブックの保存を聞かれたら、当然はいと答える。


個人用マクロブックの使い方:
ALT+F11を押す
プロジェクトエクスプローラから個人用マクロブック(personal)を展開し、必要に応じて標準モジュールを追加、下記のマクロを記入する

sub macro2()
 dim h1 as range
 dim h2 as range
 on error resume next

’コピー元と貼り付け先を取得する
 set h1 = selection
 set h2 = application.inputbox("Select destination", type:=8)
 if h2 is nothing then exit sub

’書式と値を張り付ける
 h2.parent.select
 set h2 = h2.resize(h1.rows.count, h1.columns.count)
 h1.copy destination:=h2
 h2.value = h1.value
end sub

ファイルメニューから終了してエクセルに戻り、マクロを実行する。



#質問は「貼り付け先を任意のセルに指定したい」なので、説明されてないマクロ後半の書式設定については割愛です。どこの書式を設定したいのか不明ですし。追加で質問しないでください。

この回答への補足

有難うございました。

質問が言葉足らずでした。
貼り付けをするシートは方眼用紙スタイルにして、セルの幅を固定させて使用していますので、
セレクトするセルは任意の列と行にして、貼り付けと同時に横連結、、いろいろ書式も含めて一度のマクロで処理出来たら、便利かしらと思っています。未熟すぎて思い通りのマクロができません。

ご回答いただいたマクロで活用させていただきます。有難うございました。

補足日時:2013/04/07 14:30
    • good
    • 0
この回答へのお礼

有難うございました。
スッキリしたコードで、良い勉強になりました。
これからもよろしくお願いします。

お礼日時:2013/04/08 06:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!