- ベストアンサー
エクセルマクロで一連の処理を実行する方法
- エクセルマクロを使用して、特定の一連の処理を効率的に実行する方法について教えてください。
- 具体的な処理内容は、フォントの変更、特定の行の削除、オートフィルタの設定、ウィンドウ枠の固定などです。
- さらに、特定の列の並び替えやデータの挿入なども行いたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
暇つぶし Sub シート名() ActiveSheet.Name = Format(Date, "YYYYMM") & "_教えてGoo" End Sub Sub 表全体のフォント() With Cells.Font .Name = "MS Pゴシック" .Size = 9 End With End Sub Sub 行を削除_1から11と13() Range("1:11,13:13").Delete End Sub Sub A列とD列削除() Range("A:A,D:D").Delete End Sub Sub 一行目の項目行にオートフィルタを設定() Range("A1").AutoFilter End Sub Sub ウインドウ枠の固定() Range("A2").Select ActiveWindow.FreezePanes = True End Sub Sub H列に文字が入ってる行のみ削除() Dim i As Long For i = Cells(Rows.Count, "h").End(xlUp).Row To 1 If Cells(i, "h").Value <> "" Then Rows(i).Delete Next End Sub Sub E列とF列を昇順に並び替え() Range("E:F").Sort Key1:=Range("F1"), Order1:=xlAscending, Key2:=Range("E1"), Order2:=xlAscending End Sub Sub データの最終行の次の行のU列からZ列に表を入れる() With Cells(Rows.Count, "a").End(xlUp).Offset(1, 20) .Resize(3, 6).Font.ColorIndex = 3 .Interior.ColorIndex = 6 .Value = "文字列A" .Offset(1).Value = "文字列B" .Offset(2).Value = "文字列C" .Offset(, 5).Formula = "=SUM(Z$2:Z5)" .Offset(2, 5).Formula = "=SUM(Z6:Z7)" End With End Sub 昼休み終わるんでここまで う~ん、こんな初歩的なこと30分でここまでしか出来なかった 修行せねば(笑) 検証してないのでうまく行かなかったらゴメンネ
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
>コードを一式で教えてください この質問コーナーを、回答者を下請け的に使ってコードを書かせることは、だめです。 自分である程度勉強して、ヒントぐらいをもらう、という使い方が期待されている。 ーー それに一見して、エクセルの操作をして、マクロの記録を採れば判りそうな初歩的なものが多いようだが。 >6.H列に文字が入ってる行のみ削除 行の削除のコードがわかれば、「H列に文字列が入ってない」は=""で判定できるから、組み合わせること。 >8.データの最終行の次の行のU列からZ列に表を入れる。 最終行はD=Range("A65536").End(xlUp).Row で分かるから、 コピー貼り付け(マクロの記録が採れる)の操作とでも組み合わせればよい。
- nattocurry
- ベストアンサー率31% (587/1853)
すべてに答えるのは面倒なので、とりあえず、6のヒントだけ。 > 6.H列に文字が入ってる行のみ削除 H列の最下行のセル(Excel2003ならH65536)を選択して、Ctrl+↑を押すと、H列にあるデータのうち、一番下のデータにセルが移動します。 その状態で、Shift+Spaceを押すと、そのセルを含む行全体が選択されます。 (ちなみに、Ctrl+Spaceだと列全体) その行を削除すれば、「H列で文字が入っている一番下の行を削除」したことになります。 これをH列のデータが無くなるまで繰り返せば良いです。 H列にデータが無くなったかどうかを判断するには、Ctrl+↑の結果、移動したセルがH1かどうか、で判断できます。 繰り返しは、Do While ~ Loop 構文が妥当ですかね。