No.1
- 回答日時:
こんばんは!
具体的な配置が判らないので、A1セル以降A列にシリアル値が入っているとします。
Sub Sample1()
Dim i As Long
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
With Cells(i, "A")
.Value = DateAdd("yyyy", 1, .Value)
End With
Next i
End Sub
※ うるう年が絡んでくると厄介ですが、質問の期間はうるう年は関係ないので
こんな感じではどうでしょうか?m(_ _)m
早速の回答ありがとうございます。
もう一つ質問があります。
エクセルの表題a1セルに平成28年度○○○○○とあり日付と同じく1年足されて平成29年度○○○○○にするにはどうすればいいかお願いします。
よろしくお願いします。
No.2
- 回答日時:
No.1です。
>エクセルの表題a1セルに平成28年度○○○○○とあり・・・
A列はシリアル値ではなく、文字列になっているというコトでしょうか?
そうであれば単純に「置換」で対応できると思います。
VBAでやれば
Sub Sample2()
Range("A:A").Replace what:="平成28", replacement:="平成29", lookat:=xlPart
End Sub
こんな感じでしょうか。m(_ _)m
早速回答ありがとうございます。
完全自動更新を目指してまして、、、、更新ボタンを押すと日付と表題の年度が変わるように作っております。エクセルの表には一切触れず更新出来れば誰が使用しても失敗が無いかと思い作ってましたが最後に壁にあたりました。
No.3
- 回答日時:
こんにちは
ご質問に対する回答は、すでに他の方がなさっていますので、ご質問とは違う回答を・・・
シートの使い方がわかりませんが、年度毎の一覧なので、B列以降に予定とか実績とかが記入されるものではないかと想像しました。
>更新ボタンを押すと日付と表題の年度が変わるように作っております
>誰が使用しても失敗が無いかと思い~~
ボタンが存在することが問題にならないのでしょうか?
使用中(=B列以降に記録ができている状態)で、ボタンを押されたら変なことになりませんか?
さらに、押した人が「あれっ?!」っと思って、慌ててもう一回押しちゃうとか…
想像するところ、「更新」といっても年度に一度の作業だと思いますが、「更新」した時は、B列以降にデータが入った状態なのでしょうか?(次年度用のサラのシートを作成するのではないかと想像しますが…)
多人数に配布して同じフォーマットで使用してもらうためのものであれば、年度初めに新しいブックなりシートを作成して配布すれば済むと思いますし、添付図に示すような仕組みで、年度を変更するのとボタンを押すのとでどれだけの差があるのか不明です。
誤操作を防止できるようにとのご配慮であるなら、操作を簡単にというのは最もですが、誤操作そのものをできなくしておくことが一番の対処ではないかと思います。
例えば、A列は固定にして一切変更できなくしておくとか。(シートの保護で可能)
添付図に示したものは、関数式等で全て自動で表示できるようにしたもので、このような方法であれば、うるう年であっても自動的に対応してくれます。
A1セルに(現状「28」が入っていますが)、年度を入力するとA列(B列)が自動的にその年度の表示に切り替わるようになっています。
(タイトルが和暦でA列が西暦なのも気になりますが、ご質問がそんなふうになっているので、そのままにしてあります。)
ごく簡単に作り方を記すと。
・A1セルは書式設定で、"平成"0#"年度○○○○"としてあり、年度の数値だけを入力します。
(入力規則なども利用すれば、予定外の入力をチェックすることも可能)
・A列の他のセルは、書式設定で日付にしてあります。
おまけで作成したB列は、ユーザ書式で aaa となっています。(=曜日)
・A2セルに =DATEVALUE("h"&A1&"/4/1") の数式
A3セル以降は =IF(A2<DATEVALUE("h"&($A$1+1)&"/3/31"),A2+1,"") で366日分オートフィルしています。
(年度を越えた分のセルは、空白表示になります)
・ついでにB2も同様に =A2 として下方にオートフィル
以上で、A1セルに入力した数値(平成年度)に対応した年度内の日にちが表示されるようになります。
添付図はおまけで、日曜を赤色にしていますが、条件付き書式を全体に設定しておくことで簡単に実現可能です。(年度が替わっても自動的に対応します)
どうしてもボタンでないとお気に召さないのであれば、上記の仕組みの場合でも、ボタン押し下げに応じて、A1の値を増減させるることで同様の結果が得られます。
(おまけで、年度の増減ボタンもつけてみましたが(笑)
例えば「増」の場合は、
Range("A1").Value = Range("A1").Value + 1
という1行の処理を行えばすみます。
こんばんは。
回答ありがとうございました。
僕が描いていた内容そのものです。
曜日は関数を使い取得すればいいのかと思います。
最終的にはユーザーホーム上ですべてを実行するように作成しておりますか
次年度繰越ボタンを押すとフォルダーをコピーしてディスクトップに貼り付け年度更新的な感じでした。
No.4ベストアンサー
- 回答日時:
ANo3です。
>この様場合どうすれば自動で2/29が入りますか。
データをシリアル値(=Date型)で持つようにしているなら、うるう年は自動的に2/29日が表示できます。
(前回回答の式の表示調整の仕組みをご覧ください)
それよりも、
>表は一月ごとに区切ってあります。
・・という条件は、ご質問文には記載されていませんでしたので、ANo3で提示した式はA列に一年分がズラ~っと並ぶ前提で作成した式になっています。
(うるう年はきちんと反映されますし、翌年度に当たるセルは空白になる関数式になっています)
ひと月ごとに区切って記載するのであれば話が全然違うので、各月用に式を作成し、その月の分だけ表示できる式にしておく必要がありますね。
(添付写真では部分的にしか見えませんが、小計の行やそれ以外にも異なる種類の行が間に入っているようですので…)
>2/28から3/1の間が4行空いてます
添付の写真では2/28から3/1の間は11行空いているように見えますが…???
>表は一月ごとに区切ってあります。
2月を例に考えれば、通常は28日までで以下は空白、うるう年は29日まで表示して以下は空白になれば良いものと解釈しました。(上記の「4行」云々は意味不明なので無視しています)
そのようにするには「その月の範囲」を条件にして、あとは空白になるようにしておけば良いです。
(ANo3は年度外は空白になるようにしてありますが、それを月単位にすれば良い)
例えば2月の場合の例を挙げるとして、
前回同様に、A1セルに平成年度が数値であるものと仮定すれば・・・
その先頭(2/1)のセルには
=DATEVALUE("h"&$A$1&"/2/1")
次のセルには
=IF(前のセル<DATEVALUE("h"&($A$1)&"/3/1")-1,前のセル+1,"")
として31日分フィルコピーすれば、ひと月分が表示されるはずです。
(「前のセル」とあるのは2/1を表示しているセル番地のことです)
上記の式だと12か月分に対して、月の部分を少しずつ変えた式を作成する必要がありますが、セル範囲に規則性があったり、月を示すタイトルがどこかにあるような場合は、それを利用することで全部の月で同じ関数式にすることも可能です。
などと言っているよりも、事前設定の1回こっきりの作業だと思いますので、個別に設定してしまった方が早いですし、2月以外は日数が固定なのでもっと簡単な式にでき、他の月に関しては、
= 前のセル+1
という式で、必要な範囲にフィルコピーすれば十分なはずです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Powerpointでランダムな数字の結果を表示するマクロ 2 2023/08/04 10:04
- JavaScript jsで診断コンテンツのページ内切り替えについて 1 2023/04/14 17:31
- Visual Basic(VBA) VBAで早押しゲームを作りたい 4 2022/05/12 13:46
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/01/10 09:15
- Visual Basic(VBA) 過去日付、年の切り替え 6 2022/05/26 12:41
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- Excel(エクセル) excel で 日付によって他のセルに自動で貼り付ける(3) 3 2022/05/06 09:17
- Excel(エクセル) エクセルについて教えてください。 1 2023/03/03 08:38
- 簿記検定・漢字検定・秘書検定 簿記2級 表作成時の仕訳の問題 2 2022/07/07 18:15
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/04/13 10:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelのマクロについて教えてく...
-
Vba 実数および実数タイプの変...
-
ユーザーフォームに別シートか...
-
VBA レジストリの値の読み方に...
-
エクセルVBAについて
-
VBA listBoxから
-
ExcelのVBAコードについて教え...
-
VBA 複数条件の分岐処理の上手...
-
ExcelのVBAです。フォルダ内の...
-
VBAの計算で@が出てしまう件
-
VB.net(VB)で、フォームにExcel...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
VBAの質問になります Userform内で
-
VBAの質問になります メッセー...
-
Excel マクロについての相談
-
Vba SelStart、SelLen教えてく...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBA 定義されたプロージ...
-
Excel-VBAのmsgBox()の不思議
-
【VBA】マクロの入ったファイル...
-
VBA 複数条件の分岐処理の上手...
-
現在のブックを閉じないで、マ...
-
VBAで各列の"+"と"o"の合計数を...
-
VBAに詳しい方教えてください。
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ユーザーフォームに別シートか...
-
エクセルのマクロについて教え...
-
ExcelVBA シート名を複数セルか...
-
エクセルのマクロについて教え...
-
VBA listBoxから
-
Excelのマクロについて教えてく...
-
エクセルのマクロについて教え...
おすすめ情報
皆さん回答ありがとうございます。
fujillinさんに質問です。
一つ問題が出まして、2/28から3/1の間が4行空いてます。この様場合どうすれば自動で2/29が入りますか。
表は一月ごとに区切ってあります。
よろしくお願いします。