No.6
- 回答日時:
また失礼します。
私の回答は古いやつなので、ずいぶん単純な書式ですが、マクロを勉強する方法はバージョンが違っても同じですので。
まず、「ツール」→「マクロ」→「マクロの記録」で新しいマクロを何か作ります。
それで何か作業をして、「ツール」→「マクロ」→「記録終了」で、取りあえず何らかのマクロが出来ます。
これで「ツール」→「マクロ」→「VisualBasicEditor」をクリックすると、記録されたマクロの内容が見れます。
これで、どの作業がどのコマンドになってるかを見れます。
あとは、その内容を改変するなり、ショートカットキーにマクロを割り当てるなりして、作業用に修正していきます。
基本的な、for 文、while 文、if 文、select case 文など、ループとか条件分岐などと言われる物はテキストやヘルプなどで見て、どういう条件でどんな風に繰り返す、あるいは分岐するのか覚えます。
こういう具合に、必要に応じてやっていくと結構使えるような物ができるようになります。
ポイントは
●マクロで全てやってしまわない事。
例えば選択範囲削除をマクロに登録してショートカットキーなどを割り当てて・・・というように簡単な物を作り、道具の一つみたいな使い方をする事。
●あまりマクロに頼らないで、エクセルその物の機能を活用する事。
但し、いろんな表計算ソフトを使う可能性がある場合は、共通する機能に限定して使い、エクセルのオリジナル機能を使わない方が便利です。
高機能なマクロほどトラぶった時は厄介です。
マクロでやる時は必ず、データをコピーしてコピーの方でテストを行う、もしくは、元のデータは必ずバックアップに残しておく、などの方法を取ります。
マクロでは「元に戻す」が出来ませんので、データを損傷するとパーになるので、これだけは守りましょう。
myeyesonlyさん詳しくご説明していただき有難うございます。本当に皆さんは頭が良いのですね。うらやましいです。大変参考になりました。有難うございました。
No.5
- 回答日時:
こんばんは。
>お勧めの本はありますか?
私の場合は、以下の本で独学で勉強しました。
私は、プログラミングをやった経験などありませんし、その本に出会うまでには、2度ほど挫折しました。中でも、FOMの教本は最悪でしたし、今振り返っても内容がおかしいなって思います。
コツは、これらの本の勉強をあまり熱心にしないことですね。(^^;
しかし、途中で投げ出さないことです。分からないことは分からないままでよいので、飛ばしてもよいから、最後まで読みきることと、面白いなって思ったことは、ExcelのVBE に入力してみることです。学校の勉強とは違うので、細かいことは覚えなくてよいです。だいたい、3冊で3ヶ月で終わります。半年ぐらい経てば、もう、ここの掲示板で一般的に聞くレベルは超えてしまいます。
後は、分からないところだけをもう一度おさらいするか、自分で作っていて何か分からないことがあったら、巻末の索引から辞書代わりに使えばよいです。内容は、初級から上級まで書かれていますし、巻末も充実しています。
教本で分からなくなったら、すぐに掲示板で聞いている人がいますが、その人は、最後まで行くのに疲れてしまいます。分からなければ、次の章に移ってよいと思います。
それでも、プログラミングの専門学校に行くよりも充実しています。専門学校に行けば、この内容ですと、20万円ぐらいはすると思います。
かんたんプログラミングExcel2003 大村あつし著 技術評論社
(順序は、基礎編を必ずしも先にする必要はありません。関数編からでもよいですが、応用編は、ちょっと難しいです。)
http://www.amazon.co.jp/exec/obidos/ASIN/4774119 …
http://www.amazon.co.jp/exec/obidos/ASIN/4774120 …
http://www.amazon.co.jp/exec/obidos/ASIN/4774120 …
あまり先を見て、すごい完成品を予想したりすると、現実との落差が大きいので、当面の問題しか考えないことですね。私の勉強の仕方ですが、前の自分と今日の自分を比較するだけでよいと思います。
Wendy02さん早速にご回答いただき有難うございます。本の推薦から勉強の方法まで現実感あふれる体験談本当に役に立ちます。早速梅田の紀伊国屋へ行って買ってこようと思います。有難うございました。お礼に炉端で一杯でもと申しあげたいところです。
No.4
- 回答日時:
こんばんは。
>マクロを使えば一発で削除できるかな?と思っていましたがやっぱりですね。
うーん、こういわれると、挑戦せざるを得ないですね(^^;Y
#1 さんの方法もやってみましたが、マクロでは、画面の表示をとめられる分だけ速いようです。
#3のimogasiさん同様に、実際は、=IF(MOD(ROW(),2)=1,1,2) で、値コピーして、[並べ替え]で、2000行のところの境目を見つけ、その下のデータを削除するほうが速いのですが、マクロでは、そこまでテクニックを使わなくても良いような気がします。
Sub DeleteEveryTwoRows()
'ユーザーオプション
Const OPT = 0 '1 か 0を入れる 1が奇数行/ 0 は偶数行を[削除]
If OPT > 1 Or OPT < 0 Then Exit Sub
Application.ScreenUpdating = False
With Range("IV1:IV4000") 'ダミーの列
.Formula = "=IF(MOD(Row(),2)= " & OPT & ",ROW(),"""")"
.Value = .Value
.SpecialCells(xlCellTypeConstants, xlNumbers).Select
End With
Selection.EntireRow.Delete
Range("A1").Select
Application.ScreenUpdating = True
End Sub
WENDY02さんと言いimogasiさんと言いこれはもうプロ中のプロですね。
プロの横で素人が目をパチクリと言った感じですが、こうなれば頭の悪い私もWENDY02さんに刺激されて挑戦してみたいと思います。今日からマクロを独学でマスターしてみたいと思います。お勧めの本はありますか?しかし皆さん本当に有難うございました。皆様の回答を頂いて何か不可能なことは無いのだ!と言う勇気までいただけて励みになりました。
No.3
- 回答日時:
(1)私のおすすめは、ソート法
空き列に =ISEVEN(ROW()) といれて式を下方向に複写する。
偶数行がTRUEとなる。
コピーし、値を選択して張り付けー値で、各セルの式を消す。
その空き列でソート
FALSEかTRUEのグループでまとまるからグループの適当な方を範囲指定してデータ削除。
(2)VBA
Sub test01()
d = Range("A65536").End(xlUp).Row
For i = d To 1 Step -1
If i Mod 2 = 1 Then
Rows(i).EntireRow.Delete
End If
Next
End Sub
上例では、奇数行を削除してます。本番では、偶数行なら
If i Mod 2 = 0 Then
に修正してください。
下の行から削除していくのがコツです。
(3)フィルタで抜き出し(既回答)
ーー
関数だけでは、絶対に行削除はできませんから、考えないように。
関数はセルの値だけの世界のもので、表の仕組みなどは触れません。
世の中には頭の良い方が居るものだなあと感心しながら、うらやましく思いながら一行一行見ていましたが、もう私の頭ではフーフーです。
imogasiさんはどのようにしてこんな勉強をされたのでしょうか?
No.2
- 回答日時:
こんにちは。
Excel2000で試しましたが、もっと上のバージョンでもできると思います。
一度、シートを複製して試すといいでしょう。
for 文で逆にカウントしてるのは、上から削除すると、下の行番号がずれてくるためです。
Sub Macro1()
For i = 4000 To 1 Step -1
j = i / 2
If j = Int(j) Then
'この設定は偶数行削除です。
'奇数行削除の場合は、j<>int(j) にします。
Rows(i).Delete
End If
Next i
End Sub
マクロを使えば一発で削除できるかな?と思っていましたがやっぱりですね。しかしmyeyesonlyさんのようなレベルの高い方でないと難しいですね。早速試してみたいと思います。有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Visual Basic(VBA) Excelのマクロコードについて教えてください 1 2022/03/27 12:02
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/01/25 11:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/07/13 12:31
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Excel(エクセル) Excelの複数置換はSUBSTITUTEを重ねるしかない? 9 2022/05/08 11:25
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- Excel(エクセル) Excel 指定した固有番号で、複数の行を削除する方法は? 2 2022/03/30 15:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/11 12:55
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
Excel VBAでn行毎に行の選択
Excel(エクセル)
-
一行おきにコピーするマクロが知りたい
Excel(エクセル)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
-
4
エクセルで1個飛ばしで、一括でコピペする方法は有りますか?
Excel(エクセル)
-
5
エクセルVBA 1行飛ばしで転記するループ処理
Excel(エクセル)
-
6
範囲指定したセルを1つずつ飛ばす方法
Visual Basic(VBA)
-
7
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
8
VBAの構文 3列置きにコピーして別シートに貼付
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
エクセルのマクロについて教え...
-
特定のPCだけ動作しないVBAマク...
-
Excel マクロ VBA プロシー...
-
エクセルのマクロについて教え...
-
エクセルで特定の列が0表示の場...
-
メッセージボックスのOKボタ...
-
エクセルのマクロについて教え...
-
エクセルに張り付けた写真のフ...
-
VBA アドインについて お詳しい...
-
ExcelのVBA。public変数の値が...
-
マクロ実行時、ユーザーフォー...
-
TERA TERMを隠す方法
-
エクセルで別のセルにあるふり...
-
一つのTeratermのマクロで複数...
-
EXCELのVBAでRange("A1:C4")を...
-
ExcelVBAでPDFを閉じるソース
-
TeraTermマクロの文字列結合
-
Excel VBAからAccessマクロを実...
-
ファイルが見つからない時、ス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
エクセルに張り付けた写真のフ...
-
ExcelのVBA。public変数の値が...
-
TERA TERMを隠す方法
-
Excelのマクロ(VBA)は、同じ...
-
ExcelVBAでPDFを閉じるソース
-
Excel VBAからAccessマクロを実...
-
EXCELのVBAでRange("A1:C4")を...
-
#defineの定数を文字列として読...
-
マクロ実行時、ユーザーフォー...
-
エクセルのマクロをセルの値に...
-
Outlookにて既にウィドウ単体で...
-
エクセルで別のセルにあるふり...
-
マクロで空白セルを詰めて別シ...
-
TeraTermマクロの文字列結合
おすすめ情報