No.3ベストアンサー
- 回答日時:
当方では 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/
>ところで、私の環境では、このマクロはメニューバーの
「ツール」-「マクロ」から実行すると働きません。
ショートカットに登録したり、ツールバーにマクロを登録したボタンをつくると
何故か働きます。↑この点だけちょっと試して見て下さい。
おっしゃる通りでした!ショートカットを登録したら出来ました!
わざわざ実験してくださったようでありがとうございました!!
No.7
- 回答日時:
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
私はあまりマクロに詳しくないので、少し難しいですが、教えていただいたこと分かるようになりたいと思います。
細かいところまでご説明いただきましてありがとうございました!
No.5
- 回答日時:
#2です。
>「実行時エラー'1004': RangeクラスのPasteSpecial>メソッドが失敗しました。」 と出てしまいます。
何も張り付けするデータがない状態で実行したり、普通のセル以外のテキストなどをコピーした後に実行すると私もこうなります。また私は今回の場合、マクロの保存先を「作業中のブック」にしてあります。
「コピー元のセル範囲を選択し、コピーをしてから」
貼り付け先のセルの上でもう一度マクロを実行してみてください。それでもダメなら、すみませんがちょっとわかりません。
ご指摘のこと、すべて確認し、問題はありませんでしたが出来ませんでした。
ただ、マクロをショートカットに登録すると出来ました。
ご回答ありがとうございました!
No.4
- 回答日時:
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の方と同じですね。
もう解決されたのでは、と思いましたが一応補足しておきます。
No.2
- 回答日時:
マクロはビギナーですが、とりあえず次の記述でうまく動きました(Excel2002)
コピーしたセルを、行列を入れ替え、値のみ貼り付けるマクロです。
マクロの記録で記述したマクロを開いて(自動記録に使うときのダイアログを開き、「編集」を選ぶ)
で、Sub~ End Subまでを次のようになおします。(コピペするとラク)
Sub ~(←ここは変更無用)
ActiveCell.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
End Sub
直したら画面をふつうに閉じる。
エクセル画面に戻り、試してみてください。セルをコピーした後、貼り付け先セルを選択し、このマクロを実行するとお望みの結果になるはずです。
マクロ実行の操作を簡略にするなら#1さんのいうショートカットキーを設定したり、またメニューバーの 表示 > ツールバー > ユーザー設定 。次画面のコマンドタブの(分類)マクロで、ユーザー設定ボタンをクリックアンドドラッグで、ツールバー上の好きなところまでもってきてマウスポインタが I の形になったら離すとそこにアイコンが追加されます。そのアイコンを右クリックし、マクロの登録を選び、さきほどのマクロを選びOKを押すと、このボタンをクリックしただけでマクロが実行できるようになります。
(このボタンが不要になったら、さきほどのユーザー設定画面を出した状態で、そのアイコンをクリックしエクセルシート上など適当なところで離すと消えます。ご参考まで)
ハズしてないとは思いますがハズしてたらごめんなさい。もっと回答を待ってみるとさらに詳しい人から説明がもらえるかもしれません。とりあえず私からはこのへんで。
詳しく教えていただきありがとうございます。
ご説明いただいたように実行してみたのですが、
「実行時エラー'1004':
RangeクラスのPasteSpecialメソッドが失敗しました。」
と出てしまいます。
うーん どこか私が間違っているかもしれません。
No.1
- 回答日時:
マクロを作るしかないと思います。
セルをコピーして、貼り付けの位置を指定した時点で
ツール→マクロ→新しいマクロの記録 として
右クリックで「形式を選択して貼り付け」で
値と行列入れかえを指示する部分をマクロに記録し、
ショートカットキーを適当に指定しておけば楽になると思います。
マクロの記録は、スタート地点を間違えるとヘンになるのが欠点ですが(^^;
(私だけかな?よく失敗するんですよ…(汗))
さっそくのご回答ありがとうございます。
毎回貼り付ける場所が違うので、その方法は使えませんでした。。。
マクロの記述の仕方が分かる方がいらっしゃいましたらよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel(VBA) 特定の条件に該当する行の値、書式を同じセルにコピ&ペーストしたいです 1 2022/05/21 18:18
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- Excel(エクセル) Excelに文字データのみを貼り付けたい 8 2023/05/03 15:38
- Excel(エクセル) Excel フィルタ後のコピー貼付けと可視セルの関係について 3 2023/02/07 16:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/01/27 13:15
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) マクロVBA別Excelブックにデータ転記 2 2022/07/10 23:35
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBAでのWorksheet_Change...
-
エクセルで特定の行だけ行削除...
-
エクセルで複数のシートのクリ...
-
フォルダ内にある全ファイルの...
-
現在のセルの文字列を右隣のセ...
-
【エクセル】フリーワード検索...
-
エクセル シート内の一番下のセ...
-
自分の専門分野の仕事。初見で...
-
エクセルVBAで内容変更のたびに...
-
エクセル:常に保護をかけるが...
-
長い時間かかるマクロが実行中...
-
Excelで数字を入れたら対応する...
-
スプレッドシートで以下マクロ...
-
エクセルで○をつけるマクロ設定
-
エクセルファイルを開いた回数...
-
VBA初心者です。 仕事の残業を...
-
3つのマクロを連続実行の中で...
-
複数のブックに一括で値入力す...
-
Excelのマクロ 検索範囲を広げ...
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでのWorksheet_Change...
-
Excelで数字を入れたら対応する...
-
エクセルで複数のシートのクリ...
-
エクセルファイルを開いた回数...
-
Excelのシート上のShapeにイベ...
-
エクセルで特定の行だけ行削除...
-
長い時間かかるマクロが実行中...
-
エクセル シート内の一番下のセ...
-
【エクセル】フリーワード検索...
-
Excelでセル内の文字をファイル...
-
【エクセル】「実行時エラー’10...
-
シートではなくBOOK間で重複し...
-
フォルダ内にある全ファイルの...
-
EXCELのダイアログシートって、...
-
エクセル:セル内の文字列の最...
-
自分の専門分野の仕事。初見で...
-
セルの一部分だけを太字にする方法
-
エクセルで○をつけるマクロ設定
-
エクセル マクロ 一定時間おき...
-
Excelにて、同じ画像を複数のセ...
おすすめ情報