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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
字面がカッコいい英単語
あなたが思う「字面がカッコいい英単語」を教えてください。
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
エクセルで1つおきに列を削除したい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
メッセージボックスのOKボタ...
-
ExcelのVBA。public変数の値が...
-
Excel・Word リサーチ機能を無...
-
Excel マクロ VBA プロシー...
-
Excel VBAからAccessマクロを実...
-
ファイルが見つからない時、ス...
-
c言語で言うところの #define
-
Excel 毎日手作業で時間がかか...
-
エクセルに張り付けた写真のフ...
-
エクセルマクロにて
-
Excel マクロでShearePoint先の...
-
EXCELのVBAマクロでパソコンを...
-
Office365 (Excel) におけるシ...
-
Accessのテーブル、クエリをCSV...
-
オートフィルターとExcelマクロ...
-
マクロのクリア設定がシートの...
-
印刷枚数を指定して印刷(印刷...
-
UWLSの記録でマクロを作成し使...
-
FOM出版 Excelビジネス活用編...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定のPCだけ動作しないVBAマク...
-
Excel・Word リサーチ機能を無...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
Excel VBAからAccessマクロを実...
-
Excel マクロでShearePoint先の...
-
特定文字のある行の前に空白行...
-
エクセルで別のセルにあるふり...
-
TERA TERMを隠す方法
-
wordを起動した際に特定のペー...
-
マクロ実行時、ユーザーフォー...
-
ExcelVBAでPDFを閉じるソース
-
【EXCEL VBA】オートシェイプを...
-
Excel_マクロ_現在開いているシ...
-
EXCELマクロでのThisisWor...
-
ソース内の行末に\\
おすすめ情報