Excel VBA質問箱 IV

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

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


12616 / 13646 ツリー ←次へ | 前へ→

【9583】該当日の属する週の選択方法について おちや 03/12/9(火) 16:07 質問
【9586】Re:該当日の属する週の選択方法について INA 03/12/9(火) 18:21 回答
【9588】該当日の属する週の選択方法について おちや 03/12/9(火) 18:36 回答
【9593】Re:該当日の属する週の選択方法について INA 03/12/9(火) 20:14 回答
【9598】該当日の属する週の選択方法について おちや 03/12/10(水) 10:06 発言
【9600】Re:該当日の属する週の選択方法について INA 03/12/10(水) 10:17 回答
【9603】Re:該当日の属する週の選択方法について おちや 03/12/10(水) 10:23 お礼

【9583】該当日の属する週の選択方法について
質問  おちや  - 03/12/9(火) 16:07 -

引用なし
パスワード
   初歩的なことなのですが教えてください。

B列から日付が入っています。(2セルおき)
その上の行には、その日付が何週目にあたるかを出してあります。
見にくくてすみません。
たとえば、

B                             P ←列
2    2    2     2     2           ←何週目
12/8 * * 12/9 * * 12/10 * * 12/11 * * 12/12 * *

今日は9日なので、2週目にあたるB列からP列を選択したいのですが
どのようにしたらよいのでしょうか?

どんな方法があるのか教えていただければと思います。
よろしくお願いします。

【9586】Re:該当日の属する週の選択方法について
回答  INA  - 03/12/9(火) 18:21 -

引用なし
パスワード
   今日の日付の上の行(1行目)の数値(何週目)が、
同じ列を選択すれば、よいのでしょうか?

【9588】該当日の属する週の選択方法について
回答  おちや  - 03/12/9(火) 18:36 -

引用なし
パスワード
   そうです。
2週目であれば2が入っているところを選択するということです。
例でいうとB列からP列までを選択したいのです。

説明不足ですみません。
考え方だけでも教えていただけたらと思います。

【9593】Re:該当日の属する週の選択方法について
回答  INA  - 03/12/9(火) 20:14 -

引用なし
パスワード
   日付ですが、セルに入力されている値と
表示形式は、どのようになっていますか?
日付の検索は、ちょっと工夫が必要なので教えて下さい。

以下のコードは、思いつくまま直書きしたので、動くか分かりません。

dim FindDay as Range
dim myDate as String
dim myWeek as String
dim i as long
dim wk1 as String
dim wk2 as String

myDate = Format(Date,"mm/dd") 

set FindDay = Range("A2:AE2").Find(myDate)

if FindDay is Nothing then
  msgbox "見つかりませんでした。"
  Exit sub
end if

myWeek = FindData.Offset(-1,0).Value

for i = 1 to 31
 if Cells(1,i).Value = myWeek then
   wk1 = i
   Exit for
 end if
next i


for i = 31 to 1 step -1
 if Cells(1,i).Value = myWeek then
   wk2 = i
   Exit for
 end if
next i

Range(CElls(2,wk1),cells(2,wk2)).select

【9598】該当日の属する週の選択方法について
発言  おちや  - 03/12/10(水) 10:06 -

引用なし
パスワード
   INA さま。
 お返事遅くなりました。
 ありがとうございます。

>日付ですが、セルに入力されている値と
>表示形式は、どのようになっていますか?

日付は IF(Q2="","",IF(MONTH(Q2)=MONTH(Q2+1),Q2+1,""))
数式で前日に1を足してmm/dd で表示しています。
実際のファイルでは、Find で検索できなかったので
Matchにしました。
途中まではうまくいったのですが、下記のところで
<アプリケーション定義またはオブジェクト定義のエラーです。>
とエラーが出てしまいました。

>Range(Cells(2,wk1),cells(2,wk2)).select

試しにサンプルのファイルを作り実行してみましたが
同じところで止まってしまいます。
こちらは Find のままでOKでした。
wk1もwk2もちゃんと取得できています。

どこを直せばよいのでしょうか?
勉強不足ですみません。教えてください。

【9600】Re:該当日の属する週の選択方法について
回答  INA  - 03/12/10(水) 10:17 -

引用なし
パスワード
   > <アプリケーション定義またはオブジェクト定義のエラーです。>
> とエラーが出てしまいました。
>
>>Range(Cells(2,wk1),cells(2,wk2)).select

変数の宣言ミスです。

Dim wk1 As Long
Dim wk2 As Long

にして下さい。

【9603】Re:該当日の属する週の選択方法について
お礼  おちや  - 03/12/10(水) 10:23 -

引用なし
パスワード
    INA さま

>Dim wk1 As Long
>Dim wk2 As Long

 として無事Select出来ました!!
 そのままコピーして全然気にしていませんでした。
 お手数をおかけしました。

 いろいろ考え方の勉強にもなりました。

 ほんとうにありがとうございました。
 またよろしくお願いいたします。

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