- ベストアンサー
マクロ【全体指定】
御世話になります。 下記のマクロコードをあるエクセルファイルの全シート指定で一括処理したいのですが、可能でしょうか? Sub test() 行番号 = 1 ActiveWindow.ScrollRow = 行番号 列番号 = 1 ActiveWindow.ScrollColumn = 列番号 End Sub かなり初歩的な質問で申し訳ありませんが、宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- excel vba ジャンプ
excel2003のUserFormにてtextbox作成しました。 textbox1にページを入力すると指定のページにジャンプする コードを作成したのですが、動作的には目的とする事ができました。 ただ、初心者レベルで作成したので、コード記述が長く、 ページが増えるたびにコードを追記していかなければなりません。 下記に作成したコードを記述します。 もっと簡単に記述する方法はありますか? ---------------------------------------------------------- Private Sub TextBox1_Change() If TextBox1.Value = 1 Then ActiveWindow.ScrollRow = 1 ActiveWindow.ScrollColumn = 1 Range("$A$15").Select End If If TextBox1.Value = 2 Then ActiveWindow.ScrollRow = 38 ActiveWindow.ScrollColumn = 1 Range("$A$38").Select End If If TextBox1.Value = 3 Then ActiveWindow.ScrollRow = 69 ActiveWindow.ScrollColumn = 1 Range("$A$69").Select End If If TextBox1.Value = 4 Then ActiveWindow.ScrollRow = 100 ActiveWindow.ScrollColumn = 1 Range("$A$100").Select End If If TextBox1.Value = 5 Then ActiveWindow.ScrollRow = 131 ActiveWindow.ScrollColumn = 1 Range("$A$131").Select End If End Sub ---------------------------------------------------------- 上記記述で行っていることは、 textbox1に 1 と入力すると1ページ目が表示 キーボードでctrl+Homeの操作をした状態でカーソルがA15選択 textbox1に 2 と入力すると2ページ目が表示 表示の先頭が38行目、カーソルがA38選択 ページの行数が1ページ目だけ37行 2ページ目以降が31行ごとです。 実際は、200ページ以上あるのでなんとかしたいのですが・・・・
- ベストアンサー
- オフィス系ソフト
- 行の指定文字位置へ画面をスクロール
下記のVBAコードでボタンクリックにより列そのまま行10を先頭画面へスクロールできたのですが作業上範囲内に行挿入項目(表ー2)が発生してきました。 このコードでは2行挿入したため行10の"梅田"が先頭と変わってしまいます。 表ー3のように都度行挿入後も"江藤"を先頭行にもってきたいため、 コードCells(10, ActiveWindow.ScrollColumn)の行部分を指定文字"江藤"を代入してコードを構成したいのですが? どなたか解る方よろしくお願いします。 Sub 移動1() Application.Goto reference:=Worksheets("sheet1").Cells(10, ActiveWindow.ScrollColumn), Scroll:=True End Sub
- ベストアンサー
- Visual Basic
- マクロの組み込み 2
前回と同じ質問ですが、もう一度質問させてもらいます。 参考までに、前回の質問URLです。 http://okwave.jp/qa/q6959953.html マクロの記憶を利用して Sub tesuto() ' ' tesuto Macro ' ' Keyboard Shortcut: Ctrl+r ' Sheets("Sheet1").Select ActiveWindow.ScrollColumn = 4 ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 1 Range("A4:P6").Select Selection.Copy Sheets("八十二").Select Range("A517").Select ActiveSheet.Paste End Sub と記憶させました。 このマクロを「A515」に、2行バージョンをコピーして その下「A517」に同じようにマクロ実行で2行バージョンをコピー その下「A519」に10行バージョンをコピー というようにセル列「A」の最下部へ、どんどんコピーして貼り付けていくというマクロを作りたいです。 前回質問で回答頂いた・・・・ > Range("A1").End(xlDown).Offset(1, 0).Select に編集すると、セル列「A」の【最上部】へ来てしまいます・・・ お分かりの方がいましたら、教えてください>< > Range("A1") 以降にどのような命令文を書けばいいのでしょうか・・・?
- ベストアンサー
- その他MS Office製品
- マクロの変更の仕方を教えて下さい。
前任者の作ったエクセルの表を使っています。商品販売と計算の2種類のシートがあります。商品販売にはマクロに関係する集計とクリアの二つのボタンが作られてあります。教えて頂きたい何点かがあるのですが、最初にクリアのマクロの変更をお願いします。 商品販売のエクセルの行数を現在の300行から600行に増やしたいのです。エクセルの表は増やせるのですが、マクロは単に300の数字を600に訂正するだけでいいのか分かりません。是非教えて下さい。 Range("A6:B300,E6:E300,G6:G300,I6:I300").Select Range("I6").Activate Selection.ClearContents Sheets("計算シート").Select ActiveWindow.SmallScroll Doun:=-15 Range("T3:AI297").Select Selection.ClearContents ActiveWindow.SmallScroll Down:=-231 ActiveWindow.ScrollRow=55 ActiveWindow.ScrollRow=54 と55 54 53 52 49 46と数字が不規則に小さくなりながら続き、最後は3で終わり ActiveWindow.ScrollRow=3 Range("R2").Select Sheets("商品販売").Select Range("I1").Select ActiveWindow.ScrollRow=295 ActiveWindow.ScrollRow=294 と今度は295 294 292 291 288 285 279とまた数字が続き 最後は ActiveWindow.ScrollRow=6 Range("I2").Select End Sub ActiveWindow.ScrollRow= の数字の意味が全く分かりません。構わずに最初の300→600の訂正だけで大丈夫でしょうか?
- ベストアンサー
- オフィス系ソフト
- 行列入れ替えて貼り付ける方法を教えてください。
シート1のC3:AF4にあるデータ(右に30個あるデータ)を、シート2のE列の 最終行の1個下から「形式を選択して貼り付け」の「行列を入れ替える」 で、下に30個貼り付けるマクロを書きたいのですが、どうしたらいい でしょうか? 最終行の一個下というところと、行列入れ替えて貼り付けというのが わからなくて…。 また、C3:AF4のE列への貼り付けが終わったらC7:AF8をB列に貼り付け、 C11:AF12をH列に貼り付けたいのです。 画像を添付します。 マクロの自動保存だと失敗してしまったので、これをどう修正したら いいか教えてほしいです。 Sub Macro2() ' ' Macro2 Macro ' ' Range("C7:AF8").Select Selection.Copy Sheets("Sheet2").Select Range("B2").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True Range("E2").Select Sheets("Sheet1").Select ActiveWindow.ScrollColumn = 20 ActiveWindow.ScrollColumn = 19 ActiveWindow.ScrollColumn = 18 ActiveWindow.ScrollColumn = 17 ActiveWindow.ScrollColumn = 16 ActiveWindow.ScrollColumn = 15 ActiveWindow.ScrollColumn = 14 ActiveWindow.ScrollColumn = 13 ActiveWindow.ScrollColumn = 12 ActiveWindow.ScrollColumn = 11 ActiveWindow.ScrollColumn = 10 ActiveWindow.ScrollColumn = 9 ActiveWindow.ScrollColumn = 8 ActiveWindow.ScrollColumn = 7 ActiveWindow.ScrollColumn = 6 ActiveWindow.ScrollColumn = 5 ActiveWindow.ScrollColumn = 4 ActiveWindow.ScrollColumn = 3 ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 1 Range("C3:AF4").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True Range("H2").Select Sheets("Sheet1").Select ActiveWindow.ScrollColumn = 20 ActiveWindow.ScrollColumn = 19 ActiveWindow.ScrollColumn = 18 ActiveWindow.ScrollColumn = 17 ActiveWindow.ScrollColumn = 16 ActiveWindow.ScrollColumn = 15 ActiveWindow.ScrollColumn = 14 ActiveWindow.ScrollColumn = 13 ActiveWindow.ScrollColumn = 12 ActiveWindow.ScrollColumn = 11 ActiveWindow.ScrollColumn = 10 ActiveWindow.ScrollColumn = 9 ActiveWindow.ScrollColumn = 8 ActiveWindow.ScrollColumn = 7 ActiveWindow.ScrollColumn = 6 ActiveWindow.ScrollColumn = 5 ActiveWindow.ScrollColumn = 4 ActiveWindow.ScrollColumn = 3 ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 1 Range("C11:AF12").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True Range("B1").Select End Sub よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- エクセルマクロでオートフィルタを貼り付け。VBA
お世話になっております。 エクセルのマクロを作成したのですが、上手く機能いたしません。 オートフィルタで条件に一致するものが現在表示されている 「CSV元データをここに貼り付ける」という名前のシートが ございます。 これをシートを全選択し、そのまま 「加工1」という名前のシートに貼り付ける。 といったマクロを作成したのですが、加工1には何も貼り付けられていないようです。 下記にマクロのプログラムを記載しますので、どこを訂正すればいいのかをお教えいただければ ありがたいです。 無知で申し訳ございませんが、何卒よろしく御願いいたします。 当方が今したいのは、マクロ2なのですが、マクロ2を見ようとするとマクロ1も表示されます。 なぜ、マクロ1もでてくるのかわかりませんが、よろしく御願いいたします。 Sub マクロ1() ' ' マクロ1 Macro ' マクロ記録日 : 2011/10/31 ユーザー名 : ' ' Columns("A:D").Select Selection.Delete Shift:=xlToLeft Columns("D:D").Select Sheets("読込データ(加工1)").Select ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 1 Sheets("読込データ(ORG)").Select ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 3 ActiveWindow.ScrollColumn = 4 ActiveWindow.ScrollColumn = 6 ActiveWindow.ScrollColumn = 7 ActiveWindow.ScrollColumn = 8 ActiveWindow.ScrollColumn = 10 ActiveWindow.ScrollColumn = 11 Sheets("csv元データをここに貼り付ける").Select Columns("B:D").Select Selection.Delete Shift:=xlToLeft Columns("I:P").Select Selection.Delete Shift:=xlToLeft Range("I19").Select Sheets("csv元データをここに貼り付ける").Select Rows("2:2").Select Selection.AutoFilter Selection.AutoFilter Field:=9, Criteria1:="=2", Operator:=xlAnd End Sub Sub マクロ2() ' ' マクロ2 Macro ' マクロ記録日 : 2011/10/31 ユーザー名 : ' ' Cells.Select Selection.Copy Sheets("加工1").Select Range("G12").Select End Sub
- ベストアンサー
- オフィス系ソフト
- EXCEL マクロで変化する印刷範囲を設定したい
複数年分集計したEXCELの表の中からある年(度)のデータをマクロで印刷範囲を設定したい!です。 ・EXCELのシートはA~AK列までのデータです。 ・A4~AK8までが「タイトル行」です。 ・A1列に「2014/7/1」等といった日付のデータが入っています。 ・上記「タイトル行」とある年(度)のデータをマクロで自動に選択して 印刷範囲を設定したいです。下記は、2014年のデータを印刷範囲とした マクロです。どの部分を修正すればある年のデータを抽出するマクロに できるでしょうか?教えてください。宜しくお願いします。 Sub 印刷範囲() ' ' 印刷範囲 Macro ' 印刷範囲を指定する ' ' Range("A4:AK8").Select ActiveSheet.PageSetup.PrintArea = "$A$4:$AK$8" ActiveWindow.ScrollColumn = 38 ActiveWindow.ScrollColumn = 2 ActiveWindow.SmallScroll Down:=-39 Range("A170:AK220").Select ActiveSheet.PageSetup.PrintArea = "$A$4:$AK$8,$A$170:$AK$220" Range("U208").Select End Sub
- 締切済み
- 財務・会計・経理
- マクロの組み込み
経理事務を担当しています。 質問はタイトル通りですが、マクロの組み込みの仕方を教えてください! 私がやりたいことは 『取引があったたびに、指定した範囲の書式をコピーして貼り付ける』 という単純な作業です。 使っているソフトは「Microsoft Office 2007」です。 今までやってきた事は (1)シートを4枚作成し、1~3枚目が出納帳、4枚目のシートをデータベースとして作成 (2)コピーしたいデータ書式をシート4に作成 (3)マクロの記憶を利用して Sub tesuto() ' ' tesuto Macro ' ' Keyboard Shortcut: Ctrl+r ' Sheets("Sheet1").Select ActiveWindow.ScrollColumn = 4 ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 1 Range("A4:P6").Select Selection.Copy Sheets("八十二").Select Range("A517").Select ActiveSheet.Paste End Sub と記憶して、終了しました。 (4)「Ctrl+r」で実験したところ、理想通りに展開してくれました。 私が知りたいのはここからです。 「Ctrl+r」でコピーさせたマクロですが、毎回同じ場所にしかコーピ―出来ないんです>< 経理処理上のデータなので、上から入金のあった順に下へどんどん下降していくようなマクロにしたいんです・・・ ちなみに、書式はこんな感じです A B C D E F G H I J 年 月 日 金額 科目 内訳 取引先 支払日 支払額 科目 11 8 10 10,000 11 =↑ =↑ =↑ 11 =↑ =↑ =↑ 11 =↑ =↑ =↑ こんな感じの書式を、2行・4行・7行・10行・15行と5バージョン作り、 どのマクロを実行しても、一番最後の行にコーピ―するようなマクロを 作りたいんです。 このままでは出納庁として機能しませんので、どのようにマクロを変えたらいいのか教えてください>< お願いします。 追記 別件ですが、このマクロを「Ctrl+」を利用しないで、たとえばワードアートのようなオブジェクト(?)をクリックしただけでマクロが利用できるような事って出来ますか? わかる方がいましたら、合わせて教えてほしいです。
- ベストアンサー
- オフィス系ソフト
- またまたEXCELmacroについて
お世話になります。 EXCEL 2016にて 或る表に対して以下のようなmacroを組みました。 動きは思った通りに動いてくれるので問題無いのですが、繰り返しが意外に多くなってしまい、もっとうまいまとめ方が有るように思えてきました。 Select Case 文をまとめるか、別Procにするかで悩んでいます。よろしかったらアドバイスをお願いします。 ---------------------------------------------------------------------- Sub seikatsu() With ActiveWindow If ActiveCell.Column > 5 And ActiveCell.Column < 37 Then Select Case ActiveCell.Row Case 4 To 29 .ScrollRow = 4 .ScrollColumn = 6 Case 37 To 62 .ScrollRow = 37 .ScrollColumn = 6 End Select ElseIf ActiveCell.Column > 43 And ActiveCell.Column < 51 Then Select Case ActiveCell.Row Case 4 To 29 .ScrollRow = 4 .ScrollColumn = 44 Case 37 To 62 .ScrollRow = 37 .ScrollColumn = 44 End Select ElseIf ActiveCell.Column > 54 And ActiveCell.Column < 62 Then Select Case ActiveCell.Row Case 4 To 29 .ScrollRow = 4 .ScrollColumn = 55 Case 37 To 62 .ScrollRow = 37 .ScrollColumn = 55 End Select ElseIf ActiveCell.Column > 65 And ActiveCell.Column < 80 Then Select Case ActiveCell.Row Case 4 To 29 .ScrollRow = 4 .ScrollColumn = 66 Case 37 To 62 .ScrollRow = 37 .ScrollColumn = 66 End Select Else Select Case ActiveCell.Row Case 4 To 29 .ScrollRow = 4 .ScrollColumn = 6 Case 37 To 62 .ScrollRow = 37 .ScrollColumn = 6 End Select End If End With End Sub ---------------------------------------------------------------------- なお、VBAではインデント指定していますが、ここではベタ打ちのようになってしまいます。ご容赦下さい。よろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- Excel2007のマクロでマクロを実行したところ、エラーが出てしまい
Excel2007のマクロでマクロを実行したところ、エラーが出てしまいました。どうすればよいでしょうか? 実行時エラー'1004'「RangeクラスのSelectメソッドが失敗しました」 Range("テーブル1[#All]").Selectでエラーになります。 マクロの記録を使っただけなので、どう直せばよいのかさっぱりわかりません。 どうかよろしくお願いします。 Range("A5").Select ActiveWindow.SmallScroll Down:=12 ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 3 ActiveWindow.ScrollColumn = 4 ActiveWindow.ScrollColumn = 5 ActiveWindow.SmallScroll Down:=-12 Columns("L:P").Select Selection.Delete Shift:=xlToLeft ActiveWindow.ScrollColumn = 3 ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 1 Range("A5").Select ActiveWindow.SmallScroll Down:=30 Range("A5:L55").Select ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$5:$L$55"), , xlYes).Name = _ "テーブル1" Range("テーブル1[#All]").Select ActiveWindow.SmallScroll Down:=-36 Range("テーブル1[[#Headers],[列5]]").Select ActiveWorkbook.Worksheets("ID.01").ListObjects("テーブル1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("ID.01").ListObjects("テーブル1").Sort.SortFields.Add _ Key:=Range("テーブル1[[#All],[列5]]"), SortOn:=xlSortOnValues, Order:= _ xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("ID.01").ListObjects("テーブル1").Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With ActiveSheet.ListObjects("テーブル1").Range.AutoFilter Field:=12, Criteria1:= _ Array("condition", "congruent", "control", "experiment", "="), Operator:= _ xlFilterValues ActiveWindow.SmallScroll Down:=-6 End Sub
- ベストアンサー
- その他MS Office製品
お礼
ありがとうございます!最高なコードでした! 素晴らしいです!!!