[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『特定のセルの値が増えたときに別のセルの値も増やしたい』(ララダス)
表題の通りですが、特定のセルの値が1増加したときに別のセルの値を1増やしたいという事です。
具体的には12月31日から1月1日に変わったときに1年増やしたいという事です。
平成時代には良かったのですが元号が令和に代わり難儀しています。
Officeのバージョンを上げて令和対応させれば簡単なのでしょうが個人個人のパソコン全てをバージョンアップさせる訳にもいかず苦労しています。
純粋にセルの数値を増加させる方法で構いませんのでどなたかご教示お願いします。
< 使用 Excel:Excel2003、使用 OS:Windows10 >
そして、セルの値に連動させるのは、+1 ではなくとも、YEAR(A1) のように、YEAR関数で年を得れば良いのでは? 年ではなく年度にしたいのだ、という場合、年から固定値を引けば良いだけですし。 これなら数式だけでできますが、そうでないなら、マクロを使う事になるでしょうね。(しかも、月日が小さくなったら加算、とかすると、日付を打ち間違えたから入力し直し…、という場合も+1してしまいそう)
(???) 2019/06/25(火) 14:31
(ララダス) 2019/06/25(火) 15:21
(ララダス) 2019/06/25(火) 15:52
Y1: 令和年? 例えば1? Z1: 「=TEXT(DATESTRING(BA1),"e")」が入ってる? 指数? 平成年が返っているようですが…? Z2: ここが出力先? どうなればいい? シリアル値? 文字列? AW1: 平成年または令和年? AX1: 月? AY1: 日? AZ1: 曜日も手入力?(年月日から数式で代入できそうですが…) AX2: 何? BA1: 何?
Z1セルの計算に妙な方法を使っているようなので、これを素直な年計算にすれば解決しそうに思えます。
そして、マクロボタンはシートに貼っているのですか? それともユーザーフォームですか?
(???) 2019/06/25(火) 16:11
Z2: 年(和暦)数値
AB2: 月 数値
AD2: 日 数値
AG2: 曜日 セルの中身(=--CONCATENATE(Z2+1988,"/",AB2,"/",AD2))
AX1: =TEXT(DATESTRING(BA1),"e")
AY1: =MONTH(BA1)
AZ1: =DAY(BA1)
BA1: =AG2+1
BB1: =IF($AV$3="",0,VALUE(AS3&AT3&AU3&AV3))
コマンドボタン"追加"の中身
Sub ページ追加()
i = Worksheets.Count Worksheets(i).Select 連番 = Range("BB1").Value 年 = Range("AX1").Value 月 = Range("AY1").Value 日 = Range("AZ1").Value シート名 = 月 & "月" & 日 & "日" Sheets(i).Copy After:=Sheets(i) i = i + 1 連番 = 連番 + 1 Sheets(i).Name = シート名 Range("Z2").Value = 年 Range("AB2").Value = 月 Range("AD2").Value = 日 Range("AS3").Value = Left(Right(" " & 連番, 4), 1) Range("AT3").Value = Left(Right(" " & 連番, 3), 1) Range("AU3").Value = Left(Right(" " & 連番, 2), 1) Range("AV3").Value = Left(Right(" " & 連番, 1), 1) End Sub
(ララダス) 2019/06/25(火) 16:35
こんばんは!
再現しようと頑張ったけど、、よくわからないので、、取り敢えず ↓これは、、 (=--CONCATENATE(Z2+1988,"/",AB2,"/",AD2))
↓これじゃないのかな?と思うのと =DATE(Z2+1988,AB2,AD2)
↓これは、、 シート名 = 月 & "月" & 日 & "日"
↓みたいなことじゃないのかなと思います。 シート名 = Format(Date, "yyyy年mm月dd日")
なんかシリアル値と文字を連結するだけのところがごっちゃになっているような気がします。
他にも元のコード内では変数もちゃんと宣言しているんだと思いますが、 ここにアップする時もちゃんと明示した方がいいと思います。
宣言の仕方によっても多少は変わってくると思いますので、、、
こんな時は書き手がどんな思いで変数を使っているのかがすごく大事だと思います。
それと、、
>Range("Z2").Value = 年
なんかは、、 With を使って .Range("Z2").Value = 年
明示する、、もしくは、、Set する、、
とかしないと、、何がなんだか全然分からない様な気がしますけど、、どうでしょう???? (SoulMan) 2019/06/25(火) 21:26
書き忘れです。
なぜ?明示しないといけないのか?それは、、明示しないとDebug出来ないでしょ??
画面を見ながらStep実行するのに、、表示されている画面によってころころと内容が変わるようじゃ、するたびに内容が変わる??
それじゃ、、Debug出来ないでしょ?となりません???
まぁ、、Debug出来ていれば、、何でもないことなんでしょうけど、、、 (SoulMan) 2019/06/25(火) 21:43
皆さんお騒がせしました。
(ララダス) 2019/06/25(火) 22:02
() 2019/06/26(水) 18:48
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.