スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
-------- : スポンサー広告 :

基本は大切。

現在は『すぐわかるExcelマクロ& VBA』第3章「データ管理をスムーズにするマクロ」に入っております。で、改めて思うのは基本が大切ってコト。特にVBAはそうなのかもしれませんが、同じ構文が何度も出てきます。でも、そのたびにこれはなんだったかなぁ、と戻るわたしがいます。でも、それでもいいのかもしれません。それを繰り返すうちに理屈云々よりも「あ、これはこういうものなのか」と納得する自分が徐々にではありますが出てくるようになりました。

はじめは・・・

Dim myRange As Range


にすら躓いていましたから・・・なんか、変数=入れ物という概念に馴染めなかったようで・・・汗。現在はこのソースコードがでてくると、myRange(セル)という変数(入れ物)がある、さて、そこに何を入れるのか?という感覚でとらえるようになりました。

オブジェクト変数
Dim 変数名 As オブジェクト

オブジェクト変数にオブジェクトを代入する
Set 変数名 = オブジェクト



あと、比較演算子の種類とその意味もよく理解している必要がありますね。excelで関数を使う人ならば概ね理解していると思いますが、わたしには曖昧なものがありました。まぁわりと行き当たりバッタリで使うからだと思いますが・・・理解するというよりも、使ってみる=結果を見る=違っていたら他を試す形のわたしは正直なところほとんど覚えていませんでした汗。

演算子説明記述例結果
> より大きい3>2True
>=以上3>=3True
<より小さい3<3False
<=以下3<=3True
=等しい3=2False
<>等しくない3<>2True


ちなみに当たり前ですが(汗)、式が成立するなら「True」(真)、成立しないなら「False」(偽)を返します。


また、If構文の「Then」の意味(※現在、わたしのなかでは「Then=が正しいければ」になっています。)。繰り返しFor Next構文、For Each Next構文、Do Loop構文などなどの使い分け。


決まった回数を繰り返し処理する
For 数値型の変数=初期値 To 最終値 Step 増減値

繰り返す処理 

Next

オブジェクトの数だけ繰り返し処理する
For Each オブジェクト変数 In コレクション

繰り返す処理

Next


あと、関数。

Excelで多少の関数を習得していたほうが、VBAの世界で使われている関数に馴染みが出るような気がします。少なくともわたしはそうですね。Excelで使うときと同じ要領で考えて使えますので。それって大きいような気がします。例えば、有名どころではvlookupのような引数が多い関数を使うときなど頭にスラスラとイメージができるか、できないかの差異は大きいのではないでしょうか?

Vlookup.jpg


以上、こんな感じで。

ではまたちまちまと学習します。


【snowhwite運営ブログ】
わたしの日常
ゆるゆると美人になりたい!


29980円パソコン
2012-03-19 : 3月のお勉強。 : コメント : 0 : トラックバック : 0 :

指定した日付のシフト表を自動で作成する。

すぐわかるExcelマクロ& VBA』p96より抜粋。

Sub シフト表作成()
Dim org As Integer
Dim dst As Integer
Dim i As Integer


'該当する日付のシフトをコピー
Worksheets("週シフト表").Activate
Range("C4:I4").Find(What:=Worksheets("日別").Range("C3").Value, _
LookAt:=xlWhole).Select
Range(ActiveCell.Offset(2), ActiveCell.Offset(6)) _
.Copy Destination:=Worksheets("日別").Range("C6")
Worksheets("日別").Activate


'シフトの矢印線を描画
For i = 6 To 10
If Range("C" & i).Value <> "休み" Then
org = Application.WorksheetFunction.VLookup( _
Worksheets("日別").Range("C" & i), _
Worksheets("シフトマスタ").Range("B4:D6"), 2, False)
dst = Application.WorksheetFunction.VLookup( _
Worksheets("日別").Range("C" & i), _
Worksheets("シフトマスタ").Range("B4:D6"), 3, False)


With ActiveSheet.Shapes.AddLine(Cells(i, org - 5).Left, _
Cells(i, org - 5).Top + 7, Cells(i, dst - 4).Left, _
Cells(i, dst - 4).Top + 7).Line
.EndArrowheadStyle = msoArrowheadStealth
.ForeColor.SchemeColor = 53
.Weight = 2.25
End With

End If
Next
End Sub
すぐわかるExcelマクロ& VBA p96


以下、わたし流の翻訳です汗。
宣言!
「org(整数)」という変数(入れ物)を準備。
「dst(整数)」という変数(入れ物)を準備。
「i(整数)」という変数(入れ物)を準備。


該当する日付のシフトをコピー
「週シフト表」のシートを選択する。
「週シフト表」シートのC4~I4の中から、「日別」シートのC3のセルの内容と完全に一致するものを探して、そのセルを選択する。
上記で選択したセルの2行下~6行下をコピーして、「日別」シートのC6を基点にして、貼り付ける。
「日別」シートを選択する。


シフトの矢印線を描画
FoeからNextの間、iが6から10になるまで繰り返す。
「日別」シートのC6のセルが休みでなければ以下の行動を実行する。※<>は等しくないを指す。
「日別」シートのC6のセル内容と「シフトマスタ」シートのB4~B6列が同じであれば、「シフトマスタ」シートのC4~C6列の該当する箇所を変数orgに入れる。
「日別」シートのC6のセル内容と「シフトマスタ」シートのB4~B6列が同じであれば、「シフトマスタ」シートのD4~D6列の該当する箇所を変数dstに入れる。


 【メモ】
 ※Shaps → オートシェイプを操作する
 ※AddLine → オートシェイプの線を引く

 ※うーん、ここにくるとC6で考えるのは難しくなったので、C7列で考えます汗。
「日別」シートC7列には「遅番」が入っていると前提。
7行目(変数i)・8列目(org=13-5)のセル=日別シートのH7セルの左側から → 7行目(変数i)・17列目のセルH17列のセルの左側まで線を引く。
その線は鋭い矢印を持っている。
線の色はオレンジ色に指定する。
線の太さを2・25に指定する


以下略~





これを解読するのに3時間ほどかかっております汗。まぁ、平行してこのブログもちまちまと書いているからですが・・・。あと、何度も何度も振り返っているせいもあるかもしれません。

ぱっと見た瞬間になんとなく意味が分かるのですが、こうやって文章に起こすことでよりじっくりと考えるきっかけを与えられた気分になります。あ、ちなみに必ずしも正しいとは保証しませんから~明らかな間違いがありましたらご指摘くださいまし。

このソースそのものにはそれほど心ひかれるものはないのですが、検索と置換えタブがこんな風にVBAで記述されるのか!と感動しました。

検索と置換え

それにしても、ジタバタと考えている中で、ひらめきがあると脳が喜びますね~笑。これがいわゆる「アハ体験」なのでしょうか!?


参考文献 『すぐわかるExcelマクロ& VBA
すぐわかる、と書かれていますが、初心者にはすぐ分かりません(涙)。じっくりと考える必要があります~。


【snowhwite運営ブログ】
わたしの日常
ゆるゆると美人になりたい!


2012-03-17 : 3月のお勉強。 : コメント : 0 : トラックバック : 0 :

美しいソース。

アラフォー主婦、VBAに参戦。でも書きましたが、現在、わたしは派遣社員として働いております。3月末で期間満了と言う形で終了します。

で、現在の仕事ですが、基本的にはあるソフトの管理人をやりつつ、同時に社内サイトの管理・メンテも行なっております。その際に当然ながらHTMLやJavaScriptを扱います。で、それらのソースをメンテしているときに思うのは見やすいソース、見にくいソースってあるんですよね。

基本的な外観制御はどのページも概ね一緒なのですが、細かいところで微妙に違いがあります。Tabキーを使って整理されているページ、半角で小刻みに整理されているページ、やたらとコメントが多いページ、やたらと死んでいるソースが多いページ等々。ページの性質による違いもあると人による違いもかなり大きいと思います。几帳面さ、大雑把さ、ワイルド、神経質等々。

わたしが一から作ったページもありますが、基本的には過去の方々が制作されたページをメンテすることのほうが圧倒的に多いです。

まずは派遣された会社の社内サイトはどのような構造でページを構築されているのか、という理解から入り、そして、概ね理解すると、あとはもうひたすらチマチマメンテ(笑)。でねーやはり人による癖が出ているんですよね。

その中で思ったこと。

わたしにとって美しいソースとはメンテしやすいページだなぁ、ってこと。もうこのページを製作した人はこの会社・部署にいない。でも、彼・彼女が製作したソースは残っている。ソレを見ているともういない彼・彼女の性格まで見えてくるよう。なので、自分が1からつくるときはそのことを意識しています。美しい、というか誰がやってもメンテナンスしやすいページであろうと。意識しているだけで実態はどうかは甚だ不明ですが・・・汗。



現在、たまたまVBAを勉強しています。日々、『すぐわかるExcelマクロ& VBA』を片手にジタバタしております。ジタバタ、という表現はまさしくピッタリだなー汗。どうにも本格的なプログラミング言語は苦手意識が先に立つんですよね・・・。

まーそんな中で色々なパターンのソースを見ているわけですが、大概はすぐに把握しません。。。ジタバタと解説を読んだり、前に戻ったり、ジタバタしております。で、たまーにこういう場合、こういう形で組むこともできる、みたいな解説を読むんですね。『すぐわかるExcelマクロ& VBA』では「コードがシンプルになる」みたいな表現でしょうか。



また、話は変わって、以前、ある小説を読みました。主人公はPCスキルにたけた男。彼はあるソースを見て息を呑みます。「なんて美しいソースなんだ!」と。そこで彼が言った美しいソースという言葉は斬新なアイデアの元、高度なプログラミング言語を用いて作られたソースのことだと思います。でも、そういうソースって一部の人にしか理解できないよね、きっと。←いや、よく知りませんが・・・そんな難しい、奥の深い言語があるのかどうかも知らないので・・・汗。




美しいソース。

色々な立場からみると色々な考え方があると思います。今後、VBAを勉強していく中でわたしなりの美しい基準を設けて、ジタバタと勉強していきたいと思います。まーしばらくは目的のために手段を選らばねーソースコードになると思いますが(汗)、最終的にはそうありたいなぁ、なんて高い志だけは抱いておきたいものです。


「美しいソースコード」で検索をかけると色々なサイト様がヒットします。その中を読むだけでもなかなか考えさせられます。



【snowhwite運営ブログ】
わたしの日常
ゆるゆると美人になりたい!


2012-03-17 : 知っておくと便利かも。 : コメント : 0 : トラックバック : 0 :

moug(モーグ)でExcel VBA。

moug.jpg

Excel VBAを勉強している人なら、moug(モーグ)をご存知でしょう笑。

その中に上記のようなコラムがあることもご存知?

これがまぁなかなか面白いですし、頭にもすんなりと入ってきやすいですwww会話形式ってやっぱりええなーと思います。

http://vbae.odyssey-com.co.jp/column/


【snowhwite運営ブログ】
わたしの日常
ゆるゆると美人になりたい!
2012-03-15 : 勉強法。 : コメント : 0 : トラックバック : 0 :

プロパティが分からない。

ちまちまと『すぐわかるExcelマクロ& VBA』を開く日々です。ソースをぼーっと眺めているとなんとなく意味は分かります。ええ、分かります。が、細かいところでちまちまと躓いています。。。

まー色々なところで躓いているのですが、特にプロパティの概念に頭が「?」と。先日、このブログで・・・

プロパティ オブジェクトの状態を示す。


と書きました。ええ、なんとなく意味は分かるんですが・・・汗

旦那曰く、「HTMLのプロパティと同じや!HTMLを理解して何故、プロパティを理解できないのか分からん」ということらしいですが、本当ですか!?

これを聞いて思ったこと。




HTMLのプロパティって何?




ショボン玉( ´・ω・)y━。 o ○(´・ω・`)

すみません。ポカーンとなりました。。。久しぶりにドリームウィーバーを開いてみる。

プロパティ

そうか、これがプロパティか・・・そうね、外観を制御するのね・・・そう、それがプロパティ・・・


すみません、よく分かりませんorz

オブジェクト指向プログラミングで使用されるオブジェクトが保持している、そのオブジェクトの性質を表すデータ。例えば、画像データのオブジェクトならば、高さや幅などのデータをプロパティとして持っている。

具体的にどういったプロパティを持っているかはオブジェクトによって異なり、オブジェクトの開発者がオブジェクトの性質に応じて設定する。プロパティの値には変更できないものと変更できるものがあり、変更可能なプロパティは同じオブジェクトに含まれるメソッドを使用して変更できる。
http://e-words.jp/w/E38397E383ADE38391E38386E382A3.html


オブジェクトが保持している、そのオブジェクトの性質を表すデータ。を「セルが保持している、そのセルの性質を表すデータ」とか「シートが保持している、そのシートの性質を示すデータ」とか読みかえて考えてみるとなんとなく分かるんだけれど、ソースになるとねーたちまちのうちに混乱する。。。


などと些細なことで引っかかっています。



そのうち、それも自然と頭の中に入っていくのでしょーか(`・ω・´)シャキーン



ともあれ、ひたすら、色々なパターンに慣れるしかないですね・・・涙。



【snowhwite運営ブログ】
わたしの日常
ゆるゆると美人になりたい!
2012-03-14 : 3月のお勉強。 : コメント : 0 : トラックバック : 0 :
« 前のページ  ホーム  次のページ »

プロフィール

アラフォー主婦、snowwhiteです。
ここではVBAに四苦八苦する記録を綴っていこうと思います。
ジタバタあがくだけで決して誰の参考にもならないと思いますが・・・汗
そう、ここは単なるsnowwhiteのVBA勉強記録であり、必ずしも正しいとは保証できません!
間違っておりましたら、こそっとお知らせください。
どうぞ宜しくお願いします。

snowwhiteはこんな人。→はじめに。

ランキングに参戦しています☆
 にほんブログ村 主婦日記ブログ 勉強している主婦へ
にほんブログ村 

【snowwhite運営ブログ】
主婦のウダウダ日記 わたしの日常
主婦の美容日記 ゆるゆると美人になりたい!

since 2012/03/09

「ケイコとマナブ.net」約80,000件の講座・レッスン情報満載! 

VBAエキスパートとは。

Excel・Accessのマクロ・VBAのスキルを証明する資格。
ExcelやAccessなどのアプリケーションに、指示した通りの処理を実行させる機能をマクロといいます。
VBAは、マクロにExcelやAccessへの指示を記述するための言語で、Visual Basicをベースに、マイクロソフト オフィス製品用に開発されたプログラミング言語です。
VBAを使うことで、ExcelやAccessを自在に制御することが可能になるので、ルーティンワークの自動化や大量データの一括処理、または業務システムの開発など、企業内で多岐にわたって活用されています。
引用元 http://vbae.odyssey-com.co.jp/about/

収支記録。

主婦ですもの。
VBAエキスパートスタンダート資格を取得するまでの収支をチマチマと記録したいと思います。お願い、神様。あんまり出費がかさみませんように・・・汗
>> 収支記録

2012/03/20現在 8,270円の出費

月別アーカイブ

最新コメント

訪問者数。


検索フォーム



VBA用語は正しく読みましょう。

VBA用語集
http://vbae.odyssey-com.co.jp/study/glossary.html
カタカナで読み方が表記されています。

QRコード

QR

VBA関連本。

我が家にあるのは2003まで対応の本ですが・・・分厚さにびびります


図書館で借りてきました。ビジュアル的~。


前回、勉強したときに挫折した本・・・改めて読むとよくまとまっております
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。