Sub - みる会図書館


検索対象: デスクワークを3倍効率化するテクニック : エクセルの3つの機能で仕事のスピードを加速する
13件見つかりました。

1. デスクワークを3倍効率化するテクニック : エクセルの3つの機能で仕事のスピードを加速する

ェクスプローラー」「プロバテイウインドウ」「コードウインド ウ」の 3 つから構成されます ( 前者 2 つは特に見なくても結構 です ) 。 マクロは、この「コードウインドウ」の中に記載されます ( 【図 53 】参照 ) 。 【図 53 】 プロ / ヾティ プロジェクト コードウインドウ 工クスプローラー ウインドウ ファイル旧第町印表物入を式 ) デバッグ 0 第 ( 印ツ”ル仁 ) ア・イン囲ウインドウ ー、 : 第」材 : 、ツぢ朝「純行コ 考元い - め収コード ) 、 0 ゆ vba をれよ ts (ATPVBA ・、 fmcres (FUNGRESXL 、 VB Pro ( 元 0 ・スー を 0 コ M080 日 0 引 ( 第 0 三、準モジュール 織物 1 卩」で始まってい るので、ここは単 なる「注記」 00 れ 0 Sub 当氈「 01 ( ) ' マフロ記鋒日 : 03 川 / 23 ュ・ ~ ザ ~ 名 : R 理に マクロはここに 己述される ! ニ = ロ - アこ / ( アイ - 00u 絶 ! ー・ト 1 当兤 全体一項目日 End Sub Mo 山 今後、 " 使い捨てマクロ " を使用するにあたり、知っておく べきルールは次の 3 つです。 ①マクロは、コードウインドウの中の、「 sub 」と「 EndSub 」 にはさまれた記述を上から順番に認識し、実行していく ②「 ' 」で始まる行はプログラム上は無視されるので、注記す るときに使用する 3 [ ツール (T) ] → [ マクロ (M) ] [ 新しいマクロの記録 120

2. デスクワークを3倍効率化するテクニック : エクセルの3つの機能で仕事のスピードを加速する

4 元缸・ M u 厄 2 ( コード ) Sub カラフル ( ) カラフル Macro ' マクロ記野日 : 2 圓 9 / 8 / 26 ユーザー 名 : For b : ー To 56 : ー To 56 Cells(), a) ・ Select End Sub Next a N 日 b Selection .1減e「i0「 . ColorIndex Ryu ichi ト 霧 では、 CALT] + CFI 1 ] キーで工クセルのワークシート画 面に切り替え、マクロ「カラフル」を実行させてみましよう。 ・・こんなエラーが出てくると思います。 148 クリックしてください。 なぜこんなエラーが出るのでしようか。「デバッグ (D) 」を ヘルプ ( H ) 銧ⅸりラスのⅸレ x プロバティを設定できませ 実行時工ラー・ 1 M に「 0S0 代Ⅵ s し s に

3. デスクワークを3倍効率化するテクニック : エクセルの3つの機能で仕事のスピードを加速する

まいます。カラーを表す値は最大 56 ですので、 が発生してしまいます。 こういうエラーって無視して次のコードに進んでもら でも、 いたくありませんか ? ェクセルは命令に忠実なので、ちょっと曲がったことがある とどうしたらよいかわからなくなり、ストップしてしまいます。 そういうときに使うのが、「 On Error Resume Next 」と いうコードです。これを冒頭に記述しておくと、「ちっちゃい ことは気にするな ! 」という命令になり、本来工ラーメッセー ジを出してストップするところでも、無視して次のコードに進 んでくれます。 4 元缸 x い M 確 2 ( コード ) ( Ge 「 6 D Sub カラフル ( ) ' カ ~ フル Mac 「 0 ' マ弓ロ記録日 : 2 9 / 8 / 26 ユ ーザー名 : Ryu i ch i こでエラー 0n E は 0 「 Resume Next : 1 To 56 For b : 1 To 56 Ⅱ s (b , a) . SeI ect Selection . lnterior . ColorIndex Next b Next a End Sub PI 4 150

4. デスクワークを3倍効率化するテクニック : エクセルの3つの機能で仕事のスピードを加速する

これは「再計算しなさい」という命令なので、これを何回か 繰り返せば RAND 関数でつくられたランダム数値がコロコロ 変わり、グー・チョキ・パーもそれに対応して表示されます。 後で説明しますが、何回も繰り返したいときには、 For ~ Next という構文を使います。 = 1 To 500 Calculate Next i というふうに でください。 「 Calculate 」を「 For ~ Next 」ではさみ込ん 500 のところはジャンケンのタイミングが合うように適当な 数字に変えてみてください。 Sub ジャングン ( ) , 驀ち日 3 = 2 助レ 8 / 24 ユープー名 : 9y 山曲 i keyboard 新 tc : 0 い」 : ー To 500 Calculate FO 「 i Next ー End Sub CaIcuIate ( 再計算 ) を 1 ~ 500 まで繰 り返しなさい、と いうコードです これだけで " シンプルジャンケンゲーム " の完成です。さあ、 ℃ TRL] + 「 j 」で「ジャ ~ ンケ ~ ン、ポン ! 」 サザェさんの絵なんかを横に貼ってみたら臨場感が出るかも 知れませんね。 0 章ー連の作業をあっという間にバッケージ化 ! 「使い捨てマクロ」の活用法 125

5. デスクワークを3倍効率化するテクニック : エクセルの3つの機能で仕事のスピードを加速する

考元 - M ( 厄 2 ( コード ) ( Ge れ ) Sub カラフル ( ) カーフル M & 0 「 0 ' マロ記日 : 2 9 問 / 26 ユ ーザー名 : Ryui ch i For b : ー To 56 FO r a n : n + 1 : 1 To 56 ぐ End Sub Next a Next b Selection.lnterior. Colorlndex ー Ⅱ s (b , a) . Sel ect をクリックしてマクロをストップしてください。 工ラーが出たことがわかります。いったん「リセット」ボタン この黄色のハイライト部分 ( 上記で網かけしている部分 ) で 入 ( リ書 デバッグ但 ) 、リセット 0 もうお気づきの方もおられるかもしれませんが、カラーを表 す値を、 1 →→→ ・・・ 56 、 2 → 3 → 4 → ・・・ 56 、 3 → 4 → 5 ・・・ 56 と変化させるために、 n=n + 1 を使って 1 すっ増やし ましたが、ループ①は常に 56 回繰り返すのに、 n の値だけ 2 から始めたり 3 から始めたりして 1 ずっ増やしていけば、 56 回目のループでは、 n = 57 になったり、 n = 58 になったりしてし 0 章 ー連の作業をあっという間にパッケージ化 ! 「使い捨てマクロ」の活用法 149

6. デスクワークを3倍効率化するテクニック : エクセルの3つの機能で仕事のスピードを加速する

ここまでの手順で、マクロの自動記述部分はすべて完了です。 Sub 連続差込印刷 ( ) ずつ手を加えていって、 " 使い捨てマクロ " を完成させます。 こんな感じの記述になっていましたか ? キーで確認してみましよう。 どのようなプログラムが作成されたのか、 CALTI + [ F11 ] では、これに少し Range("82") .SeIect SheetsC'iM 知書つ . S 引 e 員 Sel ec い on . Copy ' マクロ抱録日 : 20 四 / 8 / 30 ユーサー名 : Ryuichi ' 連続差、入印刷 Ma ロ・ 0 Se lect ion . Paste6peciaI Paste::xl PasteValues , 0perat ion::xlNone' Sk ipBl anks ActiveCeII ・ 0ffs 戓い , の . R 田 1g8 ( に ) ・ S 引” t Sheets(" データ ") . SeIect AppIicat ion ・ Run " 元 D a. ⅵ引通知書印刷 " False AppIication ・ CutCOPYMOde :False, Transpose::False End Sub 1 行目が、 [ 編集 (E) ] → [ コピー ということは見たままですね。 (C) ] を表したコードだ 2 行目は、「通知書」というシートを選択して、 170 ということはだいたいわかると思います。 このようにザッと目を通せば、 こういう意味だろうなあ・・ っ下に移動する。 それ以降は、「データ」というシートに戻って、セルをひと 行。 した後、 7 行目、プリントアウト用マクロ「通知書印刷」を実 3 行目以下で、そのシートの B2 セルに値の貼り付けを実施

7. デスクワークを3倍効率化するテクニック : エクセルの3つの機能で仕事のスピードを加速する

Sub 連続差込印刷 ( ) ' 連続差込印刷 M 「 0 ' マクロ記録日 : 2 囲 9 / 8 / 30 ユーザー名 : Ryuichi : Input80x ( " 何人分印刷しますか ? " ー To hc Select ion ・ Copy Shee 通知書 " ) ・ S 引 00t FO 「一 " HO 響 Many ? " ) ユーザーが入力した 数字を h ( という変数 に格納しなさい 自動記述部分 Selection . PasteSpecial Paste:=xlPasteValues, ion::xlNone, SkipBlanks End Sub Next i 「 For 」 ~ 「 Next 」ではさみ込ん ム c い冊Ⅱ .0ffs ( 1 , O).Range("A1") . Select Sheets(" データ " ) . S 引 ect AppIicati on . Run " 元 Data ・ x 尾 ! 通知書印刷 " FaI se 節PⅡこ誂i0n . CutCopyMode :False, Transpose::False だ部分を h ( 回繰リ返しなさい まず、「データ」シートの A 列の何番から何番までを連続印 さあ、つくった " 使い捨てマクロ " を動かしてみましよう。 分印刷しますか ? 」と聞いてきますので、「 3 」と入力して 「 How Many ? 」という名前のインブットボックスで「何人 マクロ名「連続差込印刷」を選択して「実行 (R) 」。 [ ツール (T) ] → [ マクロ (M) ] → [ マクロ (M) ] とし、 仮定すると、 A5 セルを選択した状態で、 仮に、 052 番、 067 番、 078 番と 3 人の通知書を印刷すると 刷するのかを決めます。 アッという間に 3 人分の通知書が印刷されます。 0 章ケーススタディで実際の事例を 3 つ紹介 173

8. デスクワークを3倍効率化するテクニック : エクセルの3つの機能で仕事のスピードを加速する

End With End Sub さて いきます。 ( Ge れ“ Sub カラフル ( ) カラフル当い 0 マクロ記祿日 : 2 0 09 / 2 & ユーサー名 : R を n を・に A ド ). S 引・ ct 響は h Selection.lnterior . C 引 or 炻 d を x : ー . P い 0 rn : 剌 Sol i d End 響は h Ra 0 Å2 つ .30k0 を ー連の作業をあっという問にバッケージ化 ! 「使い捨てマクロ」の活用法 響は h S 引・ 0 い on. 炻をを rio 「 . Col 0 rl ndex . PA い・ rn : So d End 響は h R ( ”Å3 - ). 3 引を c を 響は h S 引 00 い 0 ロヨ 6 「 io 「 . C 引 0 日 nd 色 x : 3 . P をい 0 rn : x に 0 ロ d Ryuichi AI セルを選択、 CelIs ( 1 ′ 1 ) . Sele ( t という表 現に置き換えることが できる カラー 1 ( 黒 ) で塗り つふす こから手を加えて " 使い捨てマクロ " を完成させて まず、選択するセルの位置を、行 , 列ともに変数として扱う ことにより、自由に動かせるように変更します。 「知っておくべきコード」 4 番のところで出てきましたが、 Range ("AI") という表現は、 Cells ( 1 , 1 ) という表現に置き換 えることができます。マクロの中でセルを動かしたいときは、 RICI 形式の、「 1 」の部分を変数にして、たとえば、 R ( 行 ) を a 、 C ( 列 ) を b とおいて a と b に入る数値を変化させるこ CeIIs(a,1 ). SeIect Fora= 1 T065536 とによって動かします。 0 章 141

9. デスクワークを3倍効率化するテクニック : エクセルの3つの機能で仕事のスピードを加速する

現は、操作した「切り取り」「消去」の意味です。 さて、これを 11 回繰り返しましよう。繰り返したいときに は、 For ~ Next という構文を使うんでしたよね。 Next i 《自動記述されたコード》 = 1 To 1 1 というふうに、自動記述されたコードを、 はさみ込んでください。 「 For ~ Next 」で 「 Fo ロ ~ 「 Next 」 で自動記述さ れたコードを はさみ込む 考 D 、 - , 、 MOÖし ( コード ) (GeneraI) Sub 配置替え ( ) ' 配置” 0 ' マクロ記縁日 : 2 圓 9 / 8 / 24 ユーサー名 : ich を ' 島 0 き Shortcut : 0 いい h 配置替入 い朝日 .0ffset(-l, 3) . Range("A1:C1") . Select Seiection.Insert Shift::x100wn Ac いⅡ .0ffset ( 1 , の・ RO 書 s ( ”い 2 ” ) . En い「 eRo 物 . S 引 ect End Sub N を i S 引 e こ tion. 代 Des い na い on : : いⅡ . Offse い 2 , - 6 ) ・ Ran 記に Al : C に ) S 引 e ion. { Des い na い on : : い”Ⅱ .0ffs ( 1 , -3 ) ・ Ran に AI : C ド ) い”朝日 .0ffs ( 2 , - 3 ) 、 R ( な 1 つ . S 引” t Seiection . C陸引・ 阯い Ce 日 . Off 氈 t い , -3)•Range("A1 : F2 ” ) . Se い”日 . Offset(), 3 ) ・ R ( な 1 : C に ) . S 引 ect もう一度 CALT] + [ F11 ] キーでェクセル画面に切り替え、 動作確認してみましよう。 AI セルを選択して、℃ TRL] + 「 h 」キーで「配置替え」マクロが動き出します。一瞬にして 【図 56 】の形に変わりましたか。 1 38

10. デスクワークを3倍効率化するテクニック : エクセルの3つの機能で仕事のスピードを加速する

太字部分のように、相対参照でマクロを記述するときは、常 に、基点となるセルの位置を意識するクセを付けてくたさい。 CALT] + CFI 1 ] キーで VBE 画面に切り替え、マクロシー トの画面を確認してみてください。こんなコードが記録されて いますでしようか。 考元畑 Modulei ( コードー Sub 配置替え ( ) ' マクロ野日 : 2 9 / 3 / ユーサー ' ソ b03 「 d Shortcut: Ctrl+h いⅡ .0ffset(), 0 ) . RO に 1 :2つ-Enい「eR0響 . Select S 引 ec い on . 員 Shift::xlDown 名 : , ⅲ ch i い Ce Ⅱ .Offset()1 , 3) . Range("A1 : CI " ) . Se 厄は 「アクティプセルか ら 1 行目、 0 列目に 移動して、行を 2 行 分選択」という意味 かな ? SeIection ・ Cut D い n ion にい eC 引匚 Off t い , -3 ) . Ran ( な 1 ActiveCeIl . Offs ( 0 , 3 ) . Ran 記 ( ” AI :CI") . Select S 引い on. Cut Destination:=ActiveCell . f い 2 , -6 ) . Range ( な 1 ActiveC,eIl .0ffset(l , -3 ) . Ran ( ”ÅI : F2 つ . S 引 8 員 Selection . Clear Ac いロ .0ffset(), -3 ) ・ Ran ( ”ÅI つ・ S 引 2 End Sub これの意味はわからなくてもいいのですが、今まで操作した ことが記述されているだけなのでなんとなくわかると思います。 たとえば、 1 行目「 ActiveCell. Offset ( 1 , 0 ) ~ 」の部分は、 「 Offset ( 位置の補正 ) 」とか「 Rows ( 行 ) 」、「 SeIect ( 選択 ) 」 等のキーワードがあり、かつ一番最初にやったことを思い出せ ば、「アクテイプセルから 1 行目、 0 列目に移動して、行を 2 行分選択」という意味かな・・ ・・とあたりをつけることはできる と思います。 ー連の作業をあっという間にバッケージ化 ! 「使い捨てマクロ」の活用法 137 また、チラホラと散見される「 Cut 」とか「 Clear 」という表 0 章