No.4ベストアンサー
- 回答日時:
#2の方に追加です。
セルの書式設定は m"月"d"日"(aaa)
として
A1セルから始めるとします。
A1に、1月31日を入力
A2に、+A1+2 (2/2)
A3に、+A2+3 (2/5)
A4に、+A3+2 (2/7)
として、A2からA4を選択して
フィルハンドルでOKだと思います。
A1は本当は必要ないのですが
計算式の関係で使っています。
この回答へのお礼
お礼日時:2002/02/07 20:23
ありがとうございました。未熟な私には、マクロはまだあまり理解出来ないので
適切な回答でした。エクセルを使いこなせないのでまた質問をした時は、宜しくお願い致します。
No.6
- 回答日時:
#2 は日付書式の質問と勘違いしていました。
日付が飛んでいましたね。質問の曜日間隔は例だと思いますので、自由に曜日指定できるようユーザー定義関数を作ってみました。
最初のセル(例えばA1)に最初の日付を入れます。
その下のセル(A2になります)に例えば =youbiFil(A1,"火","木","土") とします。
ユーザー定義関数の引数は、参照するセル、曜日サイクルです。
曜日サイクルは、『"火","木","土"』のように設定します。
『"月","火","水","木","金"』なら土日は出ません。『"土"』しか設定しなければ土曜日しか出しません。
3つ目の日付以降はフィルハンドルを引っ張れば出てきます。列方向もできます。
Public Function youbiFil(rgUp As Range, ParamArray myYoubi())
'曜日のパターンを登録していなければ何もしない
If UBound(myYoubi) < 0 Then
youbiFil = "": Exit Function
End If
Dim yb As Integer '前のセルは指定した曜日サイクルの何番目?
Dim maeYoubi As Integer '前のセルの曜日
Dim curYoubi As String 'カレントセルの曜日
Dim curDay As Date 'カレントセルの日付
'最初の日付の曜日が、指定した曜日サイクルと違っていれば何もしない
maeYoubi = -1
For yb = 0 To UBound(myYoubi)
If myYoubi(yb) = Format(rgUp, "aaa") Then
maeYoubi = yb
Exit For
End If
Next
If maeYoubi = -1 Then youbiFil = "": Exit Function
'前のセルの曜日の次は曜日サイクルのどこにあるか調べる
If maeYoubi < UBound(myYoubi) Then
curYoubi = myYoubi(maeYoubi + 1)
Else
curYoubi = myYoubi(0)
End If
'曜日が一致するまで日付を進める
curDay = rgUp + 1
While Format(curDay, "aaa") <> curYoubi
curDay = curDay + 1
Wend
youbiFil = curDay
End Function
No.5
- 回答日時:
再びRESです。
(No.3で回答)回答No.4のkenken0001さんのが、正解です。
最終的にできれば良いと、未熟なマクロを投稿してしまいました。
それにしても、簡単にできますね。発想が大事ですね。
No.3
- 回答日時:
どうも簡単には出来ないようです。
ですが、マクロでできました。
まず、
例えば、セルA1に「2月1日」、セルB1に下記の式をコピペ(テキスト形式で)。
=IF(ISNUMBER(A1)=FALSE,"",IF(WEEKDAY(A1)=2,"(月)",IF(WEEKDAY(A1)=3,"(火)",IF(WEEKDAY(A1)=4,"(水)",IF(WEEKDAY(A1)=5,"(木)",IF(WEEKDAY(A1)=6,"(金)",IF(WEEKDAY(A1)=7,"(土)","(日)")))))))
(もし、HTMLでコピペした場合はセルB1、B2、B3のセルの結合を解除)
セルの連続データのフィルハンドル
2月1日(金)
2月2日(土)
2月3日(日)
2月4日(月)
2月5日(火)
2月6日(水)
2月7日(木)
・
・
・
そして、マクロに下記のコードをコピペして、実行すれば、できます。
最初の日付の曜日のセルをアクティブにすることと最後の日付の曜日のセルの下のセルは空欄である必要があります。
Sub 火木土抽出()
'《条件》
'最初の日付の曜日のセルをアクティブにすること
'最後の日付の曜日のセルの下のセルは空欄
Dim i As Integer
Dim R As Integer
Dim C As Integer
i = 1
Do Until IsEmpty(Cells(i, 2).Value)
If ActiveCell.Value = "(火)" Then
ElseIf ActiveCell.Value = "(木)" Then
ElseIf ActiveCell.Value = "(土)" Then
Else
R = ActiveCell.Row
C = ActiveCell.Column
Range(Cells(R, C - 1), Cells(R, C)).Select
Selection.Delete Shift:=xlUp
Cells(R, C).Select
If ActiveCell.Value = "(火)" Then
ElseIf ActiveCell.Value = "(木)" Then
ElseIf ActiveCell.Value = "(土)" Then
Else
ActiveCell.Offset(-1, 0).Select
i = i - 1
End If
If ActiveCell.Row <> 1 Then
ActiveCell.Offset(-1, 0).Select
i = i - 1
Else
End If
End If
ActiveCell.Offset(1, 0).Select
i = i + 1
Loop
Range("A1").Select
End Sub
No.2
- 回答日時:
セルに 2/6 と入力して、そのセルを選択して
セルの書式設定→表示形式→ユーザー設定で
m"月"d"日"(aaa)
とします。あとはフィルハンドルを引っ張ります。
No.1
- 回答日時:
こんにちは セルを分ければできそうです。
セルAに年月日をあらわす数字
例えば2/6を入力します。
(表示はセルの書式設定によって、お好みの
2月6日等へ変更します)
隣り合うセルBにWEEKDAYと言う関数を使い
セルAを参照します。
例えばB1ならWEEKDAY(A1)のように。
そうすると曜日を表す数字が返ってきますので
後はIF関数等で曜日を示す文字(”日”、”月”等)へ
変換すればよいと思います。
連続して作成したい時はコピーでセルを移動すれば
日にちに対応した曜日になるはずです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 連続する名前ごとに集計 3 2022/05/21 18:24
- Visual Basic(VBA) 列 A に同じ日が2つが必要です。 1 2023/03/28 07:25
- ヨーロッパ みなさん、旅行好きですか? 3 2023/02/16 12:25
- Excel(エクセル) エクセルの祝日に色が反映しない 4 2022/05/18 09:58
- Excel(エクセル) エクセル 5 2023/02/24 09:17
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/01/10 09:15
- Excel(エクセル) 当番表の作成 2 2022/06/15 07:40
- Excel(エクセル) エクセル関数について 2 2022/04/13 18:25
- 学校 まだ第二・第四土曜日があった頃・・ 2 2023/03/20 19:17
- Excel(エクセル) エクセル 作業効率化 1 2023/02/14 21:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelのチェックボックスの使い...
-
エクセルで指定したセルのどれ...
-
対象セル内(複数)が埋まった...
-
【エクセル】IF関数 Aまたは...
-
貼り付けで複数セルに貼り付けたい
-
エクセルのセルの枠を超えて文...
-
Excelで数式内の文字色を一部だ...
-
(Excel)数字記入セルの数値の後...
-
エクセル オートフィルタで絞...
-
複数のセルのいずれかに数字が...
-
EXCEL VBA セルに既に入...
-
Excelでのコメント表示位置
-
エクセル 足して割る
-
セルをクリック⇒そのセルに入力...
-
エクセルの一つのセルに複数の...
-
【Excel】 セルの色での判断は...
-
Excelで住所を2つ(町名迄と番...
-
excelの特定のセルの隣のセル指...
-
枠に収まらない文字を非表示に...
-
エクセル “13ヶ月”を“1年1ヶ月...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
貼り付けで複数セルに貼り付けたい
-
対象セル内(複数)が埋まった...
-
Excelで数式内の文字色を一部だ...
-
セルをクリック⇒そのセルに入力...
-
Excelでのコメント表示位置
-
エクセル 足して割る
-
excelのCOUNTIF関数で、『範囲=...
-
EXCEL VBA セルに既に入...
-
エクセル オートフィルタで絞...
-
エクセルのセルの枠を超えて文...
-
(Excel)数字記入セルの数値の後...
-
エクセルの一つのセルに複数の...
-
【Excel】 セルの色での判断は...
-
Excel2003 の『コメント』の編...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
複数のセルのいずれかに数字が...
-
枠に収まらない文字を非表示に...
-
excelの特定のセルの隣のセル指...
おすすめ情報