Jose's FANTASY SPORTS!

アメリカンフットボールを中心にスポーツ好きで、カントリーギター好きのJoseによる雑記帳です。

細かい事は分からんがVBAがやりたい-8-

2010年03月31日 23時00分00秒 | いきなりVBA(Excel)
[ いきなりVBA ]
いきなりVBA 第1回 LOG
前回の“何を”どうするという指定ですって話の流れで、今回は行ってみましょう。

セルを選択とか、セルに書き込むとか、セルの事ばかりでやってきましたが、今回はシート名です。

Excelのシート名ってのは、色気が無いです。

Sheet1、Sheet2
うん、分かってるよ。って感じです。
そうじゃないと困るのも確かなんだけど。

でも、このシート名を4月とか5月とか、人の名前とか、そういうのにしてる人も多いんじゃないでしょうか。

という訳で、このシート名を変えるVBAに進んでみましょう。

まずは、簡単な固定文言系で、Sheet1のシート名を“04月”に変えるという事をやってみましょう。

“何を”は、Sheet1のシート名を。
“どうする”は、04月に変える
という指令ですよ~。


Sheets("Sheet1").Name = "04月"

すると...

あぁ、こりゃ便利・・・じゃねぇっ!!

そう言いたくなる所でしょう。
うんうん、よく分かりますよ、その気持ち。

でもね、まずは基本形から発展させてった方が分かりやすいもんです。

だから、次に進みましょう。

シート名を、選択されたセルの内容に変える。
これなら、どうです?

シート名を、ワークシートに記載した見出しと同じにする、なんて場面なら結構あるんじゃないでしょうか。


例えば、こんなの。

Sheet1には、オフェンス陣が載ってるとします。
想像するに、Sheet2にはディフェンス陣が、Sheet3には、スペシャル・チームが並んでるんでしょうね。

そうしたら、このA1セルの中身を取ってシート名にしたら、ちょっとは便利そうじゃないですか。

という訳で、まずはA1セルの中身をシート名にするというのをやってみましょう。


Sheets("Sheet1").Name = Range("A1").Value

すると...

う~ん、なんか今イチですね。
それ位なら、自分で入力しても変わらないんじゃないかと。

まずは“どうする”を、もうちょっと便利にしたい所です。
が、いきなりは大変なので、次回にという事で…。

BGM♪ I put a spell on you / Creedence Clearwater Revival
いい歌ですよね~。でも、ヘタっちょな人が歌っても、全く格好がつかない感じです。
でもVBAは、誰が書いても同じコードなら同じように動作してくれます。
特定のspell(綴り)をシート名にしてやって、この歌を思い浮かべてしまったので。
コメント (2)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

細かい事は分からんがVBAがやりたい-7-

2010年03月30日 23時00分00秒 | いきなりVBA(Excel)
[ いきなりVBA ]
いきなりVBA 第1回 LOG
この先に行く前に、ちょっと頭の中を整理しておきましょう。

人と人とで業務を行うのには、基本的に指示と実行で成り立っています。
「この書類、コピーして。」とか、
「電話が鳴ったら、取って」とか...。

分かりやすい言葉で言えば、「何をどうしろ」という指示と、それを行う実行です。

指示を受けた人が、受けた指示を実行して、仕事が成り立ちます。

VBAに限らず、PCで何かやるってのは、自分がPCに指示を出して実行させるって事です。
ごく基本的には、PCのソフトに対して「何をどうしろ」と、指示を出すのがVBAです。

もちろん、指示を受けるPC(というかソフト)側が分かるように言ってやらないといけません。
A2セルを“ボール”という文字列が入った状態にしろ
…という指示を与えるなら、
所定の場所に、
 Range("A2").Value = "ボール"
というコードを書き込む….って考えてください。

自分がしたい事は、“何”に対して行うのか。
“どう”したいのか。

そこを明確にして考えてから、コードを記述していく事は、結構重要です。

いきなり“色を赤くして!”って言われても、何の色を赤くするのか、分からない子なんです。PCってのは。

私としては、人と人でも、そういうの明確にしてコミュニケーションして欲しいと思ってますけどね。

BGM♪ I Asked the Lord / The Oak Ridge Boys
神様にお願いしましたとの事です。
PCも、お願いの仕方さえ間違えなければ、物凄い処理をしてくれるやつです。
うまく可愛がって、なるべく彼の力を発揮させてやっていきましょう。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

細かい事は分からんがVBAがやりたい-6-

2010年03月29日 23時00分00秒 | いきなりVBA(Excel)
[ いきなりVBA ]
いきなりVBA 第1回 LOG
ここまで、ちょっとしたコードを実行するボタンを作成して、何種類かの処理をやってきました。

今回は、また半歩進んで、幾つかの処理をまとめて実行してみましょう。

二つ以上の処理を実行するのは簡単です。
これまでやってきたコードを、続けて書けば良いだけです。

例えば
 A2セルに“フット”、A3セルに“ボール”の文字列を書き込んでみましょう。

こういうコードになります。

Range("A2").Value = "フット"
Range("A3").Value = "ボール"


実行結果は、こう。

次は、数字でもやってみましょう。

A2に69、A3に98、A4には、A2+A3の計算結果を書き込んでみましょう。

Range("A2").Value = 69
Range("A3").Value = 98
Range("A4").Value = Range("A2").Value + Range("A3").Value


実行結果は、こう。

重要なのは、上から順番に処理される事です。
例えば、A2+A3を先に書いてしまうと...


まだA2に69、A3に98が書き込まれる前に計算をしてしまうので...


計算結果は0になってしまいます。

やっていくと、この記述順というのは非常に重要になるのですが、まぁ現時点では、そういうものだという事だけは覚えておいてください。

BGM♪ More and more / Webb Pierce
こてこてな歌声で人気のウェブ・ピアースで、More and moreです。
この時代には、このテの歌声って人気ですよね。
レコード会社からも、もっともっとレコードを作れ!って急かされてたかもしれません。
という感じで業務では、VBAでもっともっとと処理させれば、業務効率向上につながる....かもね。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

細かい事は分からんがVBAがやりたい-5-

2010年03月27日 23時00分00秒 | いきなりVBA(Excel)
[ いきなりVBA ]
いきなりVBA 第1回 LOG
前回は、セルに値を書き込むVBAをやりました。
でも実際に使う場合って、決まった文言を書き込むなんて場面はほとんど無いものですよね。

だから、もうちょっとだけ実用的なコードに進んでみましょう。

1.別のセルの値を書き込む

Range("A2").Value = Range("B5").Value
A2セルにB5セルの値を書き込みます。
B5セルに書いた文字列(“うつし”)を、ボタンクリックで、A2セルに書き込みました。
そんなのどうすんだ?って言わないで。結構使えるんだから。

2. 別のセルの値に、固定文字列を付加する
計算用のセルの値は数字にしといて、別のセルに~枚みたいな表記をする時とか、便利そうです。
Range("B2").Value = Range("D3").Value & "枚"

3. セルに、今日の日付を入力する
ようやく、それらしくなりました。
“今日”の日付は、Dateで取得できます。
Range("C2").Value = Date

4. セルに昨日の日付を入力する
これも、それらしいですね。
昨日の日付は、Dateから1を引けばOKです。便利ですね。
Range("B2").Value = Date - 1
もちろん、“明日”はDate + 1です。

5. セルの値を足したりとか
B2とB3に数値を入力しておいてください。
Range("B4").Value = Range("B2").Value + Range("B3").Value
B4に、B2+B3の計算結果を入力します。

普通にワークシート上で計算すればいいのですが、数が多かったり、予め行数が分かっていない時とかには、こうした方が良い事もあります。
他の人に数式を消されたりする心配も無いし。

...あ、でも、#42:ダレン・シャーパーと#51 ジョナサン・ヴィルマが合計されたら、単純な合計以上に強力なはずですね...。
計算が間違ってるんでしょうか?(笑)

ともあれ、今回のは業務に使えそうな匂いのするコードですね。
業務で使うツールもこういう事の積み重ねです。
ここまででも結構、便利になってきたと思いますよ。

BGM♪ I'm Movin' On / Hank Snow
コードを辿って音程があがっていく出だしがキャッチーな、素敵な歌です。
ハンク・スノウは、自らもギターが達者で、そのPlayも呼び物のひとつになっています。この映像でも、見せ場として入れていますね。
VBAで、セルの値を移し(MOVE)たりって言う事で、選んでみました。強引か...。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

細かい事は分からんがVBAがやりたい-4-

2010年03月26日 23時00分00秒 | いきなりVBA(Excel)
[ いきなりVBA ]
いきなりVBA 第1回 LOG
第1回から第3回までで、選択する事を覚えました。

でも、便利さを実感するためには、やはり何か書き込まれたりした方が良いです。
という訳で、今日はセルに値を書き込む事まで進んでみようと思います。

またしてもボタンにコードを書き込みます。
ボタンにコードを書き込む手順を忘れちゃった人は、第1回の記事をご確認ください。

今回のコードは、こうです。

Range("C19").Value = "Devery#19"

.Valueが肝です。(選択する時は、.Selectでしたよね。今度は.Valueです。)


うまくいった人は、ボタンをクリックするとC19セルにDevery#19という文字列が入力された事と思います。

うまくいけば、いつでも第44回スーパーボウルで活躍した、ディヴァリー・ヘンダーソン#19をセル上に刻み込む事ができる、便利なボタンが完成します。

別の事を書き込みたい方は、Devery#19を好きな文字に変えてみましょう。
""でくくる事を忘れずに。

エラーが出たり、ここでうまくいかない場合の理由としてありそうなのは、
1.記述ミス
2.デザインモードがONのまま
こんなとこでしょうか。確認してみてください。

こういうものを覚える時は、自責で考える習慣が大事です。

I'm writing a letter to the Lord / Eddy Arnold
大スター、エディ・アーノルドです。確か、CMA(カントリー・ミュージック・アワード)の、第一回最優秀エンターティナーを受賞したのは、このエディ・アーノルドでした。
という方の歌ですが、セルに“書き込む”という事で、無理やり...。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする