The Road to EXCELER ~エクセラーへの道~
ブログ
  • HOME »
  • ブログ »
  • 月別アーカイブ: 2011年8月

月別アーカイブ: 2011年8月

【エクセル2010】マクロで動画シミュレーション(11)

HEARTH恵比寿。

恵比寿駅から数分程度のところにあるお店です。

こんな感じで、プロジェクターで海の景色がずっと映っていて眺め入ってしまいます。

(‐^▽^‐)

高くないしおしゃれだし、おいしいし、良いお店でした!

(*^-^)b

ここ最近また暑いですよね~。

さっき冷蔵庫に入ってた「きのこの山」を取り出して食べようとしたら全部合体してひとつのかたまりになっていました。

部屋に出してあったやつをあわてて冷蔵庫に入れたんでしょうね、これ。。

(^▽^;)

夏風邪がはやってきているようなので気をつけましょう!

゚・*:.。..。.:*・゚゚・*:.。..。.:*・゚ ゚・*:.。..。.:*・゚゚・*:.。..。.:*・゚

では、マクロの続きです。

前回の解説より、「セル範囲を1列ずつ右にずらしながら選択してコピーし、C3セルを選択して値のみ貼り付け」を繰り返すとうまくいきそうだということがわかりました。

これに対応するコードは、次の通りでしたね。

Range("○○:○○").Select
Application.CutCopyMode = False
Selection.Copy
Range("C3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks :=False, Transpose:=False

赤字の「○○」のところを1列ずつ右に変化させて「20年後」のデータまで繰り返せば完成です。

セル(範囲)を変化させるときは、「A1形式」で記述するのではなく、「Cells~」を使って「R1C1形式」で記述する必要があります。
まずこちらを修正しましょう。

J5セルというのは、5行目10列目のセルなので、「Cells(5,10)」と表すことができます。

J13セルというのは、13行目10列目のセルなので、「Cells(13,10)」と表すことができます。

行と列を間違えないように気をつけてくださいね。

よって、「Range("J5:J13")」は、「Range(Cells(5,10), Cells(13,10))」と置き換えることができます。

これを1列ずつ右に変化させていくということはどういうことかというと、

Range(Cells(5,10), Cells(13,10)) を選択してコピペ、次に、

Range(Cells(5,11), Cells(13,11)) を選択してコピペ、次に、
Range(Cells(5,12), Cells(13,12)) を選択してコピペ、次に、…

というように、

Range(Cells(5,30), Cells(13,30)) を選択してコピペ
まで繰り返すということですよね。
(20年後のデータが入っているセル範囲はAD列で、30列目なので、30までです。念のため。。)

思ったより長くなってきたので続きは次回に。。

(;^_^A

【エクセル2010】マクロで動画シミュレーション(10)

うなぎ神田川本店。

2度目の登場。

7月の丑の日前後に予約がいっぱいでなかなか行けませんでしたが、先日ようやくゆっくりと行って来ることができました。
(^-^)

秋葉原の大通り沿いにあるのですが、このたたずまいはいつ見てもいいですね~。

なんだか急に別の世界に突入したような感覚です。

電気街を歩いてから来ると、よけいにそう感じますね。
(゚ー゚;

うなぎはいうまでもなく最高級のうまさです。

ふっくら感と香りがいいね!

o(^▽^)o

゚・*:.。..。.:*・゚゚・*:.。..。.:*・゚ ゚・*:.。..。.:*・゚゚・*:.。..。.:*・゚

さて、前々回の「マクロの記録」で、こんな↓マクロが生成されましたね。

(このネタだけでもう10回目になりますが、もう少しだけお付き合いください。)

中身を確認していきましょう。

いつも言ってますが、自分が操作した手順がそのまま順番に記録されているだけなので、特にコードを知らなくても、中学レベルの英語でだいたい意味はわかるはずです。

まず、1行目、

Range("J5:J13").Select


「Range」は「範囲」、「Select」は「選択」。一番最初に操作した、セル範囲J5:J13を選択するのが、このコードの意味です。

2行目

Selection.Copy

[ホーム]タブから[コピー]ボタンを選択してクリックしましたね。それを表しています。

3行目

Range("C3").Select


C3セルを選択。


4行目

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

ちょっと長いですが、操作手順から見当をつけましょう。

セル範囲J5:J13を選択し、[ホーム]タブから[コピー]ボタンを選択してクリックした後、C3セルを選択したところまで来ています。

その次にやった操作は、「値のみ貼り付け」でしたね。

コードを見ると、「PasteSpecial」で、なんか特別な貼り付けをしていることがわかりますし、その後の「…None」とか「False」で、その特別なオプションの内容をセットしていることが想像できると思います。

で、想像通り、このコードが「値のみ貼り付け」を意味しています。

次、5行目

Range("K5:K13").Select

から、9-10行目

Selection.PasteSpecial ~~~

にかけては、前の1~4行目と同じことを、セル範囲を変えてやっているだけです。

実際にそういう操作をしましたね?

セル範囲K5:K13を選択してコピーし、C3セルを選択して値のみ貼り付けをしたと思います。

その次も同様に、セル範囲L5:L13を選択してコピーし、C3セルを選択して値のみ貼り付けをしました。

範囲だけ変更してコピペ操作はまったく同じなので、繰り返しのコード

For ~ Next

が使えそうですね。

次回はコードを編集して、For~Next文を入れていきます。

(^-^)/

Page 2 / 212

最近の投稿