プロが教えるわが家の防犯対策術!

毎月、複数シートに対して上記作業をしています。
地味に貼り付けているのでは、時間もバカになりません。
マクロを使うことになるかと思いますが、簡略化する方法を教えて下さい。
ちなみに、マクロ初心者です(^-^;)

A 回答 (3件)

マクロの自動記録で、簡単にできます。



1.まず、コピーする範囲を選択して [コピー]。
2.貼り付け先の先頭セルを選択し [ツール]-[マクロ]-[新しいマクロの記録] と
 進んで、[OK]。
3.[編集]-[形式を選択して貼り付け] で "行列を入れ替える" を指定。
4.マクロ終了ボタンをクリック。

以上です。
記録されたマクロを開くと、記録開始時に選択されていたセルが
 Range("B2").Select
のように記録されていますので、この行を削除します。

このマクロをアイコンに登録しておき、運用するときは、コピーする範囲の選択
→ [コピー] → 貼り付け先の先頭セル選択 まで操作した時点で、アイコンを
クリックします。
アイコンを使わずに [ツール]-[マクロ]-[マクロ] から実行すると、エラーに
なります。
(Win98SE, Excel2000)
    • good
    • 0
この回答へのお礼

すごーいっ!
できましたよ!!ありがとうございましたm(_ _)m

お礼日時:2004/08/05 17:25

VBAで


Sheet1のデータ範囲を指定して
Sub test01()
Dim d(1000, 256)
Dim cl As Range
Worksheets("sheet1").Select
i = 1: j = 1
m = 1
For Each cl In Selection
If cl.Row = m Then
Else
j = j + 1
i = 1
End If
d(i, j) = cl
i = i + 1
m = cl.Row
Next
'----i,j逆転
Dim s As String
s = InputBox("コピー先シート")
Worksheets(s).Select
Selection.Clear
For k = 1 To i
For l = 1 To j
Worksheets(s).Cells(k, l) = d(k, l)
Next l
Next k
End Sub
を実行する。
d(1000, 256)としてますが、実は、256列以下の制約から256行以下になります。
これは値しか移しませんが。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
コピー先のシートは毎月変わるんです。ご紹介いただいた方法ですと、シートが
固定していた場合ですよね?

お礼日時:2004/08/05 17:27

Sub Macro1()


'コピー範囲選択
Range("D10:E12").Select
Selection.Copy

'コピー先選択
Sheets("Sheet2").Select
Range("D10").Select

'行列を入れ替えて貼り付け
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True

End Sub

定型業務なら、「ツール」-「マクロ」-「新しいマクロの記録」で、行った操作が記録できるので、何度も実行させることが出来ます。

あとは、VBAのヘルプやネットを探すと色々な情報を得られますよ。
    • good
    • 1
この回答へのお礼

>定型業務なら、「ツール」-「マクロ」-「新しいマクロの記録」で、行った操作が記録できるので、何度も実行させることが出来ます。

この程度でしたら分かります(^-^)
ですが、今回はコピー元と先のシートが異なり、範囲はその都度変わります。
尚且つ、2つのファイル間での作業となります。
単に、貼り付けの業務のみを記録させたいのですが、業務セルが固定していないと
無理なのでしょうか・・・。
ご回答ありがとうございました。

お礼日時:2004/08/03 14:03

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