
No.3ベストアンサー
- 回答日時:
こんにちは。
maruru01です。一般操作による方法です。
(といっても実際はマクロですが)
日付ですので、どこかに年と月を入れる場所を用意した方がいいです。
そこで、1日のシート(Sheet1)のA1に年、B1に月を入力するとします。
まず、どのシートを選択していてもいいので、メニューの[挿入]→[名前]→[定義]で、
[名前]:適当な名前(仮に「シート位置」とします。)
[山椒範囲]:「=GET.DOCUMENT(87)+NOW()*0」
として、[OK]します。
これで、試しにどのシートのどのセルでもいいので、
=シート位置
と入力すると、そのシートの位置が表示されます。
シート位置というのは、シート下部のシートタブの左からの位置です。
したがって、各日にちのシートが左から順に並んでいれば、シートに渡った連番になります。
仮に各シートのA2に日数、B2に曜日を表示するとします。
全シートを(シートタブで)選択して、A2に、
=シート位置
と入力します。
次に、そのままB2に、
=DATE(Sheet1!$A$1,Sheet1$B$1,A2)
と入力して、B2のセルの表示形式をユーザー定義で、
「aaa」
とすれば、曜日を表示出来ます。
曜日は、数式を、
=TEXT(DATE(Sheet1!$A$1,Sheet1$B$1,A2),"aaa")
とすれば、表示形式を変えなくても直接表示出来ます。
年と月を直接数式中に入れて、
=DATE(2005,8,A2)
のようにしてもいいし、今日の日付から、
=DATE(YEAR(TODAY()),MONTH(TODAY()),A2)
としてもいいでしょう。
No.2
- 回答日時:
数式初心者・マクロ初級者です。
(万年)一般機能の方はちょっとわからないので、VBAです。
VBAも使われますか?
既存シートに対する入力だと、こんなのかなぁ。。。
Sub 日付入力したいシートを選択してから実行してね()
Dim Sh As Worksheet
Dim Rng As Range
Dim myYmd As Variant
Dim Rsp As Integer
Do
myYmd = Ymd()
Rsp = MsgBox(myYmd & "から始めますよ!", vbYesNoCancel)
If Rsp = vbCancel Then End
Loop Until Rsp = vbYes
On Error GoTo myCancel
Set Rng = Application.InputBox("入力セルをクリック!", "セルの指定", "=$A$1", , , , , 8)
On Error GoTo 0
Application.ScreenUpdating = False
On Error Resume Next
For Each Sh In ActiveWindow.SelectedSheets
With Sh.Range(Rng.Address)
.Value = myYmd
.NumberFormatLocal = "d""日"" aaa"
End With
myYmd = myYmd + 1
Next Sh
On Error GoTo 0
Application.ScreenUpdating = True
myCancel:
End Sub
Function Ymd() As Variant
Dim myY As Long
Dim myM As Long
Dim myD As Long
myY = Year(Date)
myM = Month(Date) + 1
myD = 1
On Error GoTo myCancel
myY = Application.InputBox(myY & "年でいい?", "セルの指定", myY, , , , , 1)
If myY = False Then End
myM = Application.InputBox("何月?", "セルの指定", myM, , , , , 1)
If myM = False Then End
Ymd = DateSerial(myY, myM, myD)
On Error GoTo 0
Exit Function
myCancel:
MsgBox "終了しますよ。"
End
End Function
半年振りくらいにコード組んだので、あんまり自信ありません。
あと、ざっと書きなぐったので、細かい設定は端折ってます。
動作チェックはしたけど、試す時はバックアップとってからにして下さいね。
(動作check:Excel97)
VBAなら分かるけど、一般機能だったら・・・という質問だったら流して下さい。
No.1
- 回答日時:
シート名は、原理的に、関数ではセットできません。
1シート1シートひとつづつ、名前をセットするほかには、VBAでないとできないでしょう。
Sub test01()
yymm = InputBox("年月例200508")
nextM = DateSerial(Val(Mid(yymm, 1, 4)), Val(Mid(yymm, 5, 2)) + 1, 1)
For i = 1 To 31
d = DateSerial(Val(Mid(yymm, 1, 4)), Val(Mid(yymm, 5, 2)), i)
If d >= nextM Then Exit Sub
wd = Format(d, "aaa")
Worksheets.Add(after:=ActiveSheet).Name = i & "日" & wd
Next i
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】実行時エラー '424':...
-
【マクロ】数式を入力したい。...
-
Office2021のエクセルで米国株...
-
エクセルのVBAで集計をしたい
-
vba テキストボックスとリフト...
-
【マクロ】【配列】3つのシー...
-
【マクロ】元データと同じお客...
-
【マクロ】【相談】Excelブック...
-
他のシートの検索
-
【画像あり】オートフィルター...
-
【マクロ】左のブックと右のブ...
-
空白のはずがSUBTOTAL関数でカ...
-
エクセルシートの見出しの文字...
-
【関数】3つのセルの中で最新...
-
Excelに貼ったXのURLのリンク...
-
【マクロ】excelファイルを開く...
-
LibreOffice Clalc(またはエク...
-
【マクロ】【画像あり】❶ブック...
-
エクセルの複雑なシフト表から...
-
Excelで4択問題を作成したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】元データと同じお客...
-
エクセルの関数について
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
エクセルのリストについて
-
【マクロ】数式を入力したい。...
-
【マクロ】【相談】Excelブック...
-
Office2021のエクセルで米国株...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
エクセルの複雑なシフト表から...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
【マクロ】左のブックと右のブ...
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】別ファイルへマクロ...
-
【関数】同じ関数なのに、エラ...
-
Amazonでマイクロソフトオフィ...
-
ページが変なふうに切れる
おすすめ情報