Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6716 / 13644 ツリー ←次へ | 前へ→

【43512】意味おしえて toshi 06/10/18(水) 14:54 質問[未読]
【43515】Re:意味おしえて neptune 06/10/18(水) 15:27 回答[未読]
【43527】Re:意味おしえて りん 06/10/18(水) 19:11 回答[未読]
【43531】Re:意味おしえて neptune 06/10/18(水) 21:25 発言[未読]
【43535】本題からはそれてます(雑談) りん 06/10/18(水) 23:15 発言[未読]
【43538】Re:意味おしえて toshi 06/10/19(木) 1:19 発言[未読]
【43539】Re:意味おしえて toppo 06/10/19(木) 7:00 回答[未読]
【43545】Re:意味おしえて りん 06/10/19(木) 9:29 回答[未読]
【43561】Re:意味おしえて toshi 06/10/19(木) 11:25 お礼[未読]

【43512】意味おしえて
質問  toshi  - 06/10/18(水) 14:54 -

引用なし
パスワード
   意味をおしえてください
本・ヘルプ等見たのですがいまいち?です。
よろしくお願いします。
>Sub 転記()
>  Dim II As Integer, RR As Long, CC As Long
>  For II = 1 To 14
>   Select Case II
>     Case 1 To 7: RR = 7 + II * 3: CC = 6 '上から7つはF列3つおき
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     F10〜3行おきなんですがどこがF10を意味すんでしょうか
>     Case Else:  RR = 24 + II:   CC = 5 '残りはE列
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     E32〜毎行ですがE32はどこで判断するのですか。
>   End Select
>   '
>   Worksheets("sheet1").Cells(RR, CC).Resize(1, 2) _
              ~~~~~~~~~~~~~
              ↑この辺の意味もいまいち?です
>        .Value = "=Calendar!H" & (4 + II)
>  Next
>End Sub

【43515】Re:意味おしえて
回答  neptune  - 06/10/18(水) 15:27 -

引用なし
パスワード
   ▼toshi さん:
>意味をおしえてください
>本・ヘルプ等見たのですがいまいち?です。
いまどきこういう書き方をする、参考書があるんですか?

「:」は文法上何というのか忘れましたが、1つの行に複数のステートメント
を書き込む為の文字です。出来るだけ、行数を減らせたい方が使います。

ということで、こう書いた方が見やすいです。これなら判るでしょ?
RR、CCが何を意味するかは行番号、列番号でありそうな事だけしか
私には判りません。

  For II = 1 To 14
   Select Case II
     Case 1 To 7  '上から7つはF列3つおき
      RR = 7 + II * 3
      CC = 6
     Case Else '残りはE列
      RR = 24 + II
      CC = 5
   End Select

   'これはHelpを見てそれで判らない所を具体的に質問した方が
   '親切なアドバイスがもらえます。↓
   Worksheets("sheet1").Cells(RR, CC).Resize(1, 2).Value = "=Calendar!H" & (4 + II)
  Next

【43527】Re:意味おしえて
回答  りん E-MAIL  - 06/10/18(水) 19:11 -

引用なし
パスワード
   neptune さん、こんばんわ。

>>本・ヘルプ等見たのですがいまいち?です。
>いまどきこういう書き方をする、参考書があるんですか?
いまどきの人間じゃなくてすみません。

toshi さん、こんばんわ。
>>意味をおしえてください
↓変数については向こうのツリーにぶらさげてあります。
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=43390;no=43420;id=excel

最後の設定の部分を大まかに説明。
ワークシート名sheet1の
>Worksheets("sheet1")
行番号RR 列番号CC のセルを
>.Cells(RR, CC)
行1×列2サイズに拡張した範囲には、
>.Resize(1, 2)
ワークシート名CalendarのH列、II+4行目のセルの値が入る
>.Value = "=Calendar!H" & (4 + II)

ということです。

変数名(II,IntIなど)は職場や学習した時期によって名まえの付け方に個性や癖があるので、自分でわかりやすい、人に引き継ぎやすい範囲でお好きなように付ければいいです。


ファイルの名前を台風のように外国の女の子の名まえでつけてる人も過去にいました。
ファイル名と内容がわかりにくいと周りから非難ごうごうでした。

構文については以下も参考にしてみてください。

コードの記述について簡潔に紹介
ttp://www001.upp.so-net.ne.jp/yoshihiro/gram0.htm
他にVBの文法がわかりやすく説明されています。

Select Caseの使い方を詳しく紹介
ttp://homepage1.nifty.com/rucio/main/technique/Select.htm

【43531】Re:意味おしえて
発言  neptune  - 06/10/18(水) 21:25 -

引用なし
パスワード
   ▼りん さん:
>neptune さん、こんばんわ。
こんばんは
のっけから、しょうもない話ですが、こんばん「わ」ってのは
最近はこう書くんですか???
皮肉やからかいではありません。ホントに自分を疑ってます。
私の時代には「は」なんですが・・・ちなみに私はおっさんで、
いまどきの人間には程遠いです。

さて、お詫びです。
>>いまどきこういう書き方をする、参考書があるんですか?
>いまどきの人間じゃなくてすみません。
お気を悪くされたようで、大変申し訳ない。ごめんなさい。
入門者向けの参考書に書いているのかと思ったんで。

ただ、入門者レベルの方に提供するのにはどうかなと思いますが、
熟練者があの書き方をするのは何の文句もないです。
実際、ある程度のレベルの参考書のサンプルコード等には使ってますしね。

入門者レベルの方は今回のように知らないこともあるし・・・
読み難いという程度です。

【43535】本題からはそれてます(雑談)
発言  りん E-MAIL  - 06/10/18(水) 23:15 -

引用なし
パスワード
   neptune さん、こんばんわ。

>のっけから、しょうもない話ですが、こんばん「わ」ってのは
>最近はこう書くんですか???
 最近、あいさつ文で慶と喜を書き分けなかったり、法令遵守を法令順守と書く事が増えているようなので、知らない間に漢字やフリガナが変わっていてもおかしくはないですが、私の知り得る範囲で挨拶は「こん○○は」です。
 「わ」をわざと使う理由は、かなり前に主宰の谷さんに説明はしたのでここでは省略します。
 最近の人はしりませんが、私はこの掲示板以外(メール等)ではちゃんと「こん○○は」です。

 そういえば、「こんにちゎ」ってのも見かけますね。
 「ゎ」はどう発音するのかすらわかりません。


「こんにちわ」が嫌いだそうです
ttp://park15.wakwak.com/~o0o0o0o0/bokumetsu/
誤用についてはここがおもしろかったです
ttp://homepage1.nifty.com/hidex/goyo/goyo1.html
「御用達」ごようたつ→ごようたし→ごようたつ らしいです
ttp://www.web-nihongo.com/dictionary/dic_qa/dic_qa_index.html

相手によってはわざと間違えてるのか、本気で間違えてるのかが判断が難しいときもありますね。

>>>いまどきこういう書き方をする、参考書があるんですか?
>>いまどきの人間じゃなくてすみません。
>お気を悪くされたようで、大変申し訳ない。ごめんなさい。
気を悪くしていませんので大丈夫です。

【43538】Re:意味おしえて
発言  toshi  - 06/10/19(木) 1:19 -

引用なし
パスワード
   ▼りん さん neptune さん
こんばんわ。
私の書き方が悪かったのかneptune さんとのやりとりで
気を悪くなされているかと心配です・・・

さて本題の意味おしえてですが
このあたりから?なんです
>行番号RR 列番号CC のセルを
>>.Cells(RR, CC)
>行1×列2サイズに拡張した範囲には、
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
理解できないなー
>>.Resize(1, 2)
>ワークシート名CalendarのH列、II+4行目のセルの値が入る
>>.Value = "=Calendar!H" & (4 + II)
>
>ということです。
>
>変数名(II,IntIなど)は職場や学習した時期によって名まえの付け方に個性や癖があるので、自分でわかりやすい、人に引き継ぎやすい範囲でお好きなように付ければいいです。

一番最初のスレにもかきましたが

>   Select Case II
>     Case 1 To 7: RR = 7 + II * 3: CC = 6 '上から7つはF列3つおき
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     F10〜3行おきなんですがどこがF10を意味すんでしょうか
     どこがF10なのか???

>     Case Else:  RR = 24 + II:   CC = 5 '残りはE列
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     E32〜毎行ですがE32はどこで判断するのですか。
     どこがE32なのか???
ここが理解できれば全体が何となく理解できそうなんですが
お時間のあるときで結構ですのでレベルをさげて説明いただけないでしょうか。
よろしくお願いします。

>   End Select
>コードの記述について簡潔に紹介
>ttp://www001.upp.so-net.ne.jp/yoshihiro/gram0.htm
>他にVBの文法がわかりやすく説明されています。
>
>Select Caseの使い方を詳しく紹介
>ttp://homepage1.nifty.com/rucio/main/technique/Select.htm
↑参考させて貰います。

【43539】Re:意味おしえて
回答  toppo  - 06/10/19(木) 7:00 -

引用なし
パスワード
   Range("A1")はCells(1,1)とも書けます。
Range("B1")はCells(1,2)とも書けます。
Range("C1")はCells(1,3)とも書けます。
・・・・・・
Range("F1")はCells(1,6)とも書けます。
Range("F2")はCells(2,6)とも書けます。
・・・・・・
Range("F10")はCells(10,6)とも書けます。
・・・・・・
これで、Cells(行番号、列番号)の意味わかりますか?
これが判れば先に進めるでしょう。

【43545】Re:意味おしえて
回答  りん E-MAIL  - 06/10/19(木) 9:29 -

引用なし
パスワード
   toshi さん、おはようございます。

>このあたりから?なんです
>>行番号RR 列番号CC のセルを
>>行1×列2サイズに拡張した範囲には、
>>>.Cells(RR, CC).Resize(1, 2)
>理解できないなー
A1を行1×列2に拡張すると、A1:B1という範囲になります

>>   Select Case II
>>     Case 1 To 7: RR = 7 + II * 3: CC = 6 '上から7つはF列3つおき
>     F10〜3行おきなんですがどこがF10を意味すんでしょうか
>     どこがF10なのか???
IIが 1から7まで は、RR(行番号)の計算は 7 + II * 3 なので、
II = 1の時 RR = 7 + 1 x 3 = 7 + 3 = 10
II = 2の時 RR = 7 + 2 x 3 = 7 + 6 = 13
II = 3の時 RR = 7 + 3 x 3 = 7 + 9 = 16
II = 4の時 RR = 7 + 4 x 3 = 7 + 12 = 19
II = 5の時 RR = 7 + 5 x 3 = 7 + 15 = 22
II = 6の時 RR = 7 + 6 x 3 = 7 + 18 = 25
II = 7の時 RR = 7 + 7 x 3 = 7 + 21 = 28

CC(列番号)は 6 で固定なので、
II=1のときは、
Cells(RR,CC) → Cells(10,6) 

No. 123456
列 ABCDEF

なので セルF10

>     E32〜毎行ですがE32はどこで判断するのですか。
>     どこがE32なのか???
>>     Case Else:  RR = 24 + II:   CC = 5 '残りはE列
7より大きい場合は、RRの計算式は 24 + II なので、
II = 8の時 RR = 24 + 8 = 32
II = 9の時 RR = 24 + 9 = 33
II =10の時 RR = 24 +10 = 34
・・・
(IIがFor 〜 Nextで繰り返す範囲で最後まで続きます)

CC(列番号)は 5 で固定なので、
II = 8のときは、
Cells(RR,CC) → Cells(32,5) 

No. 12345
列 ABCDE

なので セルE32

EXCEL VB(A)のヘルプでCellsの項目も見てください。

【43561】Re:意味おしえて
お礼  toshi  - 06/10/19(木) 11:25 -

引用なし
パスワード
   ▼りん さん:
丁寧な解説ありがとうございます。
何となくですがわかりましたこれから
ヘルプ・参考書等でよく調べます。
ながながとお付き合いいただきありがとうございました。

toppoさんありがとうございます。
proが見ればたやすいのでしょうが初心者は
非常に理解しがたいです。
これで次へ進めそうです
本当にありがとうございました。
解決(^_^)/~

>>このあたりから?なんです
>>>行番号RR 列番号CC のセルを
>>>行1×列2サイズに拡張した範囲には、
>>>>.Cells(RR, CC).Resize(1, 2)
>>理解できないなー
>A1を行1×列2に拡張すると、A1:B1という範囲になります
>
>>>   Select Case II
>>>     Case 1 To 7: RR = 7 + II * 3: CC = 6 '上から7つはF列3つおき
>>     F10〜3行おきなんですがどこがF10を意味すんでしょうか
>>     どこがF10なのか???
>IIが 1から7まで は、RR(行番号)の計算は 7 + II * 3 なので、
>II = 1の時 RR = 7 + 1 x 3 = 7 + 3 = 10
>II = 2の時 RR = 7 + 2 x 3 = 7 + 6 = 13
>II = 3の時 RR = 7 + 3 x 3 = 7 + 9 = 16
>II = 4の時 RR = 7 + 4 x 3 = 7 + 12 = 19
>II = 5の時 RR = 7 + 5 x 3 = 7 + 15 = 22
>II = 6の時 RR = 7 + 6 x 3 = 7 + 18 = 25
>II = 7の時 RR = 7 + 7 x 3 = 7 + 21 = 28
>
>CC(列番号)は 6 で固定なので、
>II=1のときは、
>Cells(RR,CC) → Cells(10,6) 
>
>No. 123456
>列 ABCDEF
>
>なので セルF10
>
>>     E32〜毎行ですがE32はどこで判断するのですか。
>>     どこがE32なのか???
>>>     Case Else:  RR = 24 + II:   CC = 5 '残りはE列
>7より大きい場合は、RRの計算式は 24 + II なので、
>II = 8の時 RR = 24 + 8 = 32
>II = 9の時 RR = 24 + 9 = 33
>II =10の時 RR = 24 +10 = 34
>・・・
>(IIがFor 〜 Nextで繰り返す範囲で最後まで続きます)
>
>CC(列番号)は 5 で固定なので、
>II = 8のときは、
>Cells(RR,CC) → Cells(32,5) 
>
>No. 12345
>列 ABCDE
>
>なので セルE32
>
>EXCEL VB(A)のヘルプでCellsの項目も見てください。

6716 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free