アプリ版:「スタンプのみでお礼する」機能のリリースについて

別のファイルからセルをコピーして、あるファイルに「貼り付け」を行っています。
方法は「形式を選択して貼り付け」で「値」のみを「行列を入れ替える」で貼り付けています。
手間なので作業を簡単にしたいのですが可能でしょうか。

(ユーザー設定でコマンドをボタン(アイコン)として取り出す場合は「形式を選択して貼り付け」までしかできなかったです。)

他に方法はありますでしょうか?
マクロが必要なのでしょうか?
よろしくお願い致します。

A 回答 (7件)

当方では Excel97 を使用していますが、出来ました。



Sub Macro1()
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
End Sub

マクロの中身は回答No.2の ActiveCell.Select が抜けただけですね。
回答No.2と同じく、コピー元をコピーして、
貼り付け先をクリックしてから実行して下さい。

ところで、私の環境では、このマクロはメニューバーの
「ツール」-「マクロ」から実行すると働きません。
ショートカットに登録したり、ツールバーにマクロを登録したボタンをつくると
何故か働きます。↑この点だけちょっと試して見て下さい。

参考URL:http://arena.nikkeibp.co.jp/tec/vba/gaz/vba_2_01/
    • good
    • 0
この回答へのお礼

>ところで、私の環境では、このマクロはメニューバーの
「ツール」-「マクロ」から実行すると働きません。
ショートカットに登録したり、ツールバーにマクロを登録したボタンをつくると
何故か働きます。↑この点だけちょっと試して見て下さい。

おっしゃる通りでした!ショートカットを登録したら出来ました!
わざわざ実験してくださったようでありがとうございました!!

お礼日時:2003/02/24 19:32

Sub testAAAAA()



Dim 現在位置列, 現在位置行 As Integer

Windows("別のファイル.xls").Activate '別のファイルの
Sheets("Sheet1").Select 'シート1の
現在位置列 = ActiveCell.Column 'アクティブセルの列番号
現在位置行 = ActiveCell.Row 'アクティブセルの行番号
'マウスでクリックされた所から、左に7個のセルをコピーして
Range(Cells(現在位置行, 現在位置列), Cells(現在位置行, 現在位置列 + 6)).Copy

Windows("あるファイル.xls").Activate 'あるファイルの
Sheets("Sheet1").Select 'シート1の
ActiveCell.Select 'マウスで指定されたセルに、縦横入れ替えて、貼り付ける
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
End Sub

エクセル2000で書きました。
「あるファイル」と、「別のファイル」は、両方とも開いている必要が有ります。
Sheet1のものをコピー、貼り付けをおこなっています。
コピーするセルの列、行を変えたいときは、次のコードを書き換えてください。
Range(Cells(現在位置行, 現在位置列), Cells(現在位置行, 現在位置列 + 6)).Copy
 ↓
Range(Cells(現在位置行, 現在位置列), Cells(現在位置行 + 1, 現在位置列 + 10)).Copy
    • good
    • 0
この回答へのお礼

私はあまりマクロに詳しくないので、少し難しいですが、教えていただいたこと分かるようになりたいと思います。
細かいところまでご説明いただきましてありがとうございました!

お礼日時:2003/02/24 19:36

#2、#5です。

何度もすみません。
「 ActiveCell.Select 」の部分、
無くてもOKでした。あってもとくに問題ないですが、取り急ぎ訂正まで。
    • good
    • 0
この回答へのお礼

>#2、#5です。何度もすみません。

とんでもございません。
何度も来てくださってありがとうございます!
ActiveCell.Selectはあっても無くてもいいのですね。
分かりました!

お礼日時:2003/02/24 19:35

#2です。


>「実行時エラー'1004': RangeクラスのPasteSpecial>メソッドが失敗しました。」 と出てしまいます。

何も張り付けするデータがない状態で実行したり、普通のセル以外のテキストなどをコピーした後に実行すると私もこうなります。また私は今回の場合、マクロの保存先を「作業中のブック」にしてあります。

「コピー元のセル範囲を選択し、コピーをしてから」
貼り付け先のセルの上でもう一度マクロを実行してみてください。それでもダメなら、すみませんがちょっとわかりません。
    • good
    • 0
この回答へのお礼

ご指摘のこと、すべて確認し、問題はありませんでしたが出来ませんでした。
ただ、マクロをショートカットに登録すると出来ました。
ご回答ありがとうございました!

お礼日時:2003/02/24 19:34

No1のものです。



コピーする
貼り付け位置を指定する

ここまでは、マクロの記録をせずにやります。

そして、右クリックで「形式を選択して貼り付け」の一連の動作を
マクロに記録します。
そして、記録を終了します。

それによってできたマクロは以下の通りです。
Sub Macro3()
'
' Macro3 Macro
' マクロ記録日 : 2003/2/24 ユーザー名 : user1
'
' Keyboard Shortcut: Ctrl+m
'
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
End Sub

コメント行は無視すれば、No3の方と同じですね。
もう解決されたのでは、と思いましたが一応補足しておきます。
    • good
    • 0
この回答へのお礼

もう一度ご説明くださってありがとうございました。
ショートカットを割り当てたら出来るようになりました!

お礼日時:2003/02/24 19:38

マクロはビギナーですが、とりあえず次の記述でうまく動きました(Excel2002)


コピーしたセルを、行列を入れ替え、値のみ貼り付けるマクロです。

マクロの記録で記述したマクロを開いて(自動記録に使うときのダイアログを開き、「編集」を選ぶ)
で、Sub~ End Subまでを次のようになおします。(コピペするとラク)
Sub ~(←ここは変更無用)

ActiveCell.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True

End Sub

直したら画面をふつうに閉じる。

エクセル画面に戻り、試してみてください。セルをコピーした後、貼り付け先セルを選択し、このマクロを実行するとお望みの結果になるはずです。

マクロ実行の操作を簡略にするなら#1さんのいうショートカットキーを設定したり、またメニューバーの 表示 > ツールバー > ユーザー設定 。次画面のコマンドタブの(分類)マクロで、ユーザー設定ボタンをクリックアンドドラッグで、ツールバー上の好きなところまでもってきてマウスポインタが I の形になったら離すとそこにアイコンが追加されます。そのアイコンを右クリックし、マクロの登録を選び、さきほどのマクロを選びOKを押すと、このボタンをクリックしただけでマクロが実行できるようになります。
(このボタンが不要になったら、さきほどのユーザー設定画面を出した状態で、そのアイコンをクリックしエクセルシート上など適当なところで離すと消えます。ご参考まで)
ハズしてないとは思いますがハズしてたらごめんなさい。もっと回答を待ってみるとさらに詳しい人から説明がもらえるかもしれません。とりあえず私からはこのへんで。
    • good
    • 0
この回答へのお礼

詳しく教えていただきありがとうございます。
ご説明いただいたように実行してみたのですが、
「実行時エラー'1004':
RangeクラスのPasteSpecialメソッドが失敗しました。」
と出てしまいます。
うーん どこか私が間違っているかもしれません。

お礼日時:2003/02/24 15:19

マクロを作るしかないと思います。



セルをコピーして、貼り付けの位置を指定した時点で
ツール→マクロ→新しいマクロの記録 として
右クリックで「形式を選択して貼り付け」で
値と行列入れかえを指示する部分をマクロに記録し、
ショートカットキーを適当に指定しておけば楽になると思います。

マクロの記録は、スタート地点を間違えるとヘンになるのが欠点ですが(^^;
(私だけかな?よく失敗するんですよ…(汗))
    • good
    • 0
この回答へのお礼

さっそくのご回答ありがとうございます。
毎回貼り付ける場所が違うので、その方法は使えませんでした。。。
マクロの記述の仕方が分かる方がいらっしゃいましたらよろしくお願いします。

お礼日時:2003/02/24 12:34

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