スポンサーサイト

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

InStr関数は・・・

どうにもこうにも関数などの読み方は苦労しますね・・・

「InStr関数」に関して、わたしの頭の中では「インスター関数」になっております。が、どうやらこの関数、よく使いそうだな、と思うと慌てて正しい読み方を検索。

困った時のVBA用語集によりますと、正確には以下のように読むよう。



 インエスティーアール
 インストリング



・・・

やっぱりインスターじゃないのね(涙)。ああ、どっちが覚えやすいかなー。やっぱりそのまんま、読むインエスティーアール?でも、長ったらしい。ということはインストリング?

ああ、出版社の方、お願いします。是非、参考書に読みというか、ルビをふってくださいまし!さもないとわたしのようにデタラメ読みをする人が増えてきます。。。


ちなみに今、読んでいるのは下記。



はじめはケッと思っていましたが、読みなれると、なかなか効率の良い本だな、と思うようになりました(笑)。やっぱり少しずつでも分かってくると見方が変わってきますね。

さて、InStr関数はいわゆる文字列操作関数です。

文字列を操作するマクロを作成するとき、文字列を数えたり、文字列中から指定した文字の数を数えたい場合があります。このようなときに便利なのが、文字列を数える「Len」関数と、文字列から指定した文字を検索する「InStr」関数です。


VBA_文字列操作関数
↓結果は・・・
VBA_文字列操作関数結果
A1に表示されている「10」という数値。 → 指定した文字列の長さをかえす。=Len(文字列)
B1に表示されている「3」という数値。 → 検索対象文字列の中に検索文字列が何番目にあるかをかえす。=InStr(検索対象文字列、検索文字列)
C1に表示されている「8」という数値 → 開始番号以降で検索対象文字列の中に検索文字列があるのは何番目かをかえす。=InStr(開始位置、検索対象文字列、検索文字列)

いかんなー、インスター関数という文字列が頭の中で闊歩する。インストリング、インストリング・・・言い聞かせないと!



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


29980円パソコン
スポンサーサイト
2012-03-28 : 3月のお勉強。 : コメント : 1 : トラックバック : 2 :

ResizeプロパティとOffsetプロパティ

今、何を勉強しているのか?と思われそうですが、まぁ、ちまちまと寄り道をしています。現在はちまちまと下記を読んでいます。



全くやさしくわかりませんが、とりあえず、別の本を読むと別の流れでVBAを説明してくれるので、そういう意味では新たな発見や躓きがあり、今は結構面白く眺めています。さて、その中で表題のoffsetプロパティに遭遇。ちょっとここらで整理をしてみようと思いました。

唐突にEXCEL VBAを勉強している人なら一度は遭遇するであろうExcelでお仕事!様。そこで、ちらっと遭遇したこのページ、なかなか面白く眺めました。特にRangeオブジェクトの使い方に関する説明は「なるほど・・・(←本当に理解しているかどうか追求はしないでください)」と目からウロコ的で面白いです。

さて、ここでRangeオブジェクトを返すプロパティとして表題の2種、ResizeプロパティとOffsetプロパティも取り上げられ、次のようにサクッと書かれています。

■「Resizeプロパティ」
最初に何らかの方法で左上基点の「Rangeオブジェクト」を取得してある前提で、下方向と右方向に行列数を変更したセル範囲の「Rangeオブジェクト」を再取得するプロパティです。
■「Offsetプロパティ」
セル範囲のサイズ変更が「Resizeプロパティ」なら、位置の変更が「Offsetプロパティ」です。


この下線の部分、セル範囲のサイズ変更が「Resizeプロパティ」なら、位置の変更が「Offsetプロパティ」という表現でストーンと何かを理解した気分になりました。

■位置の変更 Offsetプロパティ
excel.jpg
ActiveCell.Offset(a,b)は、アクティブセルを始点に下にa個、右にb個移動した先のセルを表すRangeオブジェクト。要は指定するセルの位置が変更する。

■セル範囲の変更 Resizeプロパティ
resize2.jpg
Range("B2").Resize(2, 3).Select。指定するセルの範囲が広がる。逆に狭くなることもあるのかしら???


ResizeプロパティとOffsetプロパティはちょっとごちゃごちゃになっていたので、この機会に整理できてちょっとすっきりかも!?

いずれはまた、Rangeオブジェクトを取得するためのプロパティやメソッドを整理したいなー。こんがらってきているしー涙。

Excel(エクセル) VBA入門:セル範囲の指定方法も整理にはいい感じです♪



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


29980円パソコン
2012-03-24 : 3月のお勉強。 : コメント : 1 : トラックバック : 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 :

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

ちまちまと『すぐわかる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ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。