こんにちは、VBAで西暦年から和暦年への変換でエラーが出て原因がよく分かりません。

下のようにして、変換してやろうとしてもyear1,month1,day1の型が違いますとかのエラーが出て、変数の型をInteger、String、
Variantでとろうとしてもエラーばかりです、宜しくお願いします。

もっと簡単に出来る方法があると思うのですが、よく分かりません。
曜日まで「平成○年○月○日(木)」というような表示形式にしたいのです。

year1 = Year(Format(Calendar1_F.Value, "yyyy/m/d/(aaaa)"))
month1 = Month(Format(Calendar1_F.Value, "yyyy/m/d/(aaaa)"))
day1 = Day(Format(Calendar1_F.Value, "yyyy/m/d/(aaaa)"))
youbi1 = Right(Format(Calendar1_F.Value, "yyyy/m/d/(aaaa)"), 4) - Right(Format(Calendar1_F.Value, "yyyy/m/d/(aaaa)"), 3)
TextBox3.Value = "平成" + (year1 - 1988) + "年" + month1 + "月" + day1 + "日" + "(" + youbi1 + ")"

このQ&Aに関連する最新のQ&A

A 回答 (2件)

http://www.geocities.jp/okaway03170507/oka1303.htm
まったくそのまんまの回答があります。
    • good
    • 0
この回答へのお礼

有り難う御座いました

ある日のシリアル値と別のシリアル値を引き算、足し算してこれを何日間として日に戻す関数はどのようなものでしょうか

お礼日時:2009/05/19 14:57

Calendar1_Fがちゃんとした日付型になっている場合



>year1 = Year(Format(Calendar1_F.Value, "yyyy/m/d/(aaaa)"))

曜日まで変換しているのがエラーの原因ではないでしょうか。

year1 = Year(Format(Calendar1_F.Value, "yyyy/m/d"))

それか、あっさりと

year1 = Year(Calendar1_F.Value)

また、曜日は

youbi1 = Format(Calendar1_F.Value, "(aaaa)")

で取得できます。

●それから、個々の年、月、日を取得しなくていいなら次のような方法もあるかと。

TextBox3 = Format(Calendar1_F.Value, "ggge""年""m""月""d""日""(aaaa)")
 
 
    • good
    • 0
この回答へのお礼

有り難う御座いました

お礼日時:2009/06/01 18:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QAccessで和暦でも西暦でも入力・表示可能にするには?

Accessのフォームで生年月日を入力するテキストボックスを配置しています。

基本は和暦入力なのですが、外国人の方もいるため、西暦入力のこともあるのです。
和暦で入力した場合は和暦で、西暦で入力した場合は西暦で表示されるようにしたいのですが、何かよい方法はないでしょうか?

Aベストアンサー

最初に日付型について、理解してみましょう!

1900/01/01 = 1として、1日を+1づづしてます
2009/03/02 = 39,509として、実際、保管されてます

ですので、保管している状況では、和暦/西暦が、実際は、無関係です
これを書式、定型入力で入力し、上記のように、数値に変換、保管、表示するときに、再度、変換表示してるものです

これを和暦/西暦を保管して、更に、表示で再現するとなると・・・
変換せずテキストにするか?
(ただし、入力チェックは、モジュール化する必要があり)
別のフィールドに、和暦/西暦の表示フラグ的なものを作り、クエリにて、入力用と、表示用のフィールドを2つ設定する必要が、あります

どっちにしても、簡単には、出来そうに無いね^^;

Qシェルで正規表現 YYYY/MM/DD

引数で受け取った文字列が YYYY/MM/DD形式であるかを判定したいのですが、シェルが初めてなのでよくわかりません・・・。

どなたかご教授ください!
よろしくお願いします。

Aベストアンサー

数字とスラッシュの並びであることを判断したいのなら正規表現を使うまでもなくファイルマッチで出来ます。

case "$1" in
[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]) FLAG=true ;;
*) FLAG=false ;;
esac
if $FLAG
then echo YYYY/MM/DD 形式
else echo YYYY/MM/DD 形式でない
fi

日付として正しいかはまた別の話。

QAccess2007で、西暦と和暦を両方使うが、変換が分からない。

Windows7でAccess2007を使っています。テーブル内に日付が西暦と和暦
の二つが有り、通常は西暦で入力をします。然し、表示には西暦と和暦
を出したいのですが。変換が分かりません。

テーブル内には入力の西暦しか無く、表示の前に更新クエリーで西暦の
フィールドを読んで和暦のフィールドを更新したいのですが。簡単に出
来る方法は無いのでしょうか。

宜しく、お願いします。

Aベストアンサー

和暦と西暦の二つのフィールドを設定する必要があるのかな?
クエリのデザイングリッドに新たなフィールドを追加
和暦だよーん:[西暦]
とし、Alt + Enter を押して[和暦だよーん]フィールドのプロパティを表示させます。
その書式のところに、ggge\年mm\月dd\日
とすれば今日だと西暦2016/3/5|和暦だよーん平成28年03月05日
になります。
相互に変更可能ですから二つのフィールドを設定するよりも・・・。
gやmの数はお好みで変更を。

QRubyにおけるファイル作成日(yyyy/mm/dd)の求め方

Rubyを使って、テキスト処理をしようとしています。
ファイル作成日を取り出す必要があり、

p File::mtime(filename)

を使っています。しかし、これの出力は、

Wed Apr 25 17:44:44 +0900 2007

このような、フォーマットです。

普通に、 2007/04/25 の形で使いたいのです。

(1)ライブラリは、あるのでしょうか?
   ある場合には、それの呼び出す方法も併せて教えていただけないでしょうか?
(2)サブルーチンを作る場合には、その作り方を教えていただけないでしょうか?

当方、Rubyを始めたばかりなものですから、本当に申し訳ない。
宜しくお願いいたします。

Aベストアンサー

File.mtime の戻り値は Time オブジェクトだから、後は Time#strftime などでフォーマットすれば良いのでは?

File::mtime(filename).strftime('%Y/%m/%d')

かな?

Q保育士試験対策・・年号は和暦・西暦のどちらで覚えるべき?

今年の保育士試験を受験しようと考えています。勉強で、人物や出来事等を年号と共に覚えなければいけない事項もありますが、和暦で覚えた方がいいのでしょうか。それとも西暦で覚えた方がいいのでしょうか。実際、過去の試験問題では西暦と和暦のどちらで出題されたのでしょうか。できれば和暦か西暦かのどちらかだけを覚えた方が負担が少ないので教えてください。

Aベストアンサー

こんにちは。

保育士試験の勉強に年号の知識は不要だと思いますが・・・

過去問をざっと見る限り、法令や制度の施行年は和暦。
年代を表すときは「1990年代」「1970年代」など西暦。
で統一されているみたいです。

参考までに。

QVBAのプログラムで、DIAG = 1# / A(L, L) や R(

VBAのプログラムで、DIAG = 1# / A(L, L) や R(I) = 0# の数字1、0の後についている番号記号#は何を意味しているものでしょうか?

http://www.index-press.co.jp/books/excel/excel-04.pdf

の記事内にあるプログラムで使用されていますが、解説がありません。
調べてみましたがシャープと読まないことぐらいしかわかりませんでした。

どうぞよろしくお願いします。

Aベストアンサー

Pdf拝見しました。
凄く読みづらいプログラムで、どうにか修正したい欲に
かられるわけですが。

ここでいう♯記号などは、「リテラル」というもので型を
暗黙に示すもので、#はDouble型を示すものだと思います。

言語が違いますが仕様が似てますので参考まで。
3-1 変数と定数
 http://msdn.microsoft.com/ja-jp/library/dd314343.aspx
 …真ん中のほう:
 …VB .NET はリテラルのデータ型に応じて、以下のような表記をします(表 3-2)。
 …の明示的な記述方法の列

1♯ はDouble型の1ということになります。
基本的に、Dim i as Double と宣言すれば i はDouble型に決まって
いますので♯は要りませんが。

稀に Dim i as Variant(何でも型)と宣言したとき、i=1#とすると
Double型として明示代入ができます。
とはいえ、変数の中身が訳がわからなくなるので、こんな書き方は
通常はしません。
プログラム文中を判りやすく見せているだけだと思います。


とはいえ、このプログラムは読みづらいです。
変数、配列のインデクサ、ループカウンタなど殆どが英字2文字以下の
意味のない単語変数なので、可読性のよいプログラムクォリティとしては
よろしくないと思います。

Pdf拝見しました。
凄く読みづらいプログラムで、どうにか修正したい欲に
かられるわけですが。

ここでいう♯記号などは、「リテラル」というもので型を
暗黙に示すもので、#はDouble型を示すものだと思います。

言語が違いますが仕様が似てますので参考まで。
3-1 変数と定数
 http://msdn.microsoft.com/ja-jp/library/dd314343.aspx
 …真ん中のほう:
 …VB .NET はリテラルのデータ型に応じて、以下のような表記をします(表 3-2)。
 …の明示的な記述方法の列

1♯ はDouble型の1ということになります。...続きを読む

Q日付データの西暦・和暦について

よろしくお願いします。
Vb2005とAccess2003でWinアプリを開発しています。
データベースに日付データを西暦で蓄積して、期間合計を出したりその他の処理を行っていました。
フォーム上にDateTimePikerやMonthCalendarといったユーザーコントロールを配置していますが、これも西暦です。
印刷等もすべて西暦表示で行っています。
これを、すべて和暦にして欲しいと言われたのですが、Accessのデータベースも和暦で日付データを蓄積するのが良いのでしょうか?
それとも、フォーム上で和暦で入力されたデータを西暦に変換して蓄積するほうが普通なのでしょうか?
元号が変更になった場合等を考えれば、帳票類も西暦のほうがプログラムの変更(更新)の手間がなく良いような気がするのですが、和暦って結構ニーズがあったりしますでしょうか?(私は経験が浅いのでよくわからず、素朴な疑問です)
DateTimePikerの和暦表示については、紹介サイトがあったのですが、MonthCalendarについては和暦表示できるのかわかりませんでした。方法がありましたら教えてください。
日付の西暦・和暦について、アプリケーションを作るうえでのアドバイス等もありましたらあわせてお願い致します。

よろしくお願いします。
Vb2005とAccess2003でWinアプリを開発しています。
データベースに日付データを西暦で蓄積して、期間合計を出したりその他の処理を行っていました。
フォーム上にDateTimePikerやMonthCalendarといったユーザーコントロールを配置していますが、これも西暦です。
印刷等もすべて西暦表示で行っています。
これを、すべて和暦にして欲しいと言われたのですが、Accessのデータベースも和暦で日付データを蓄積するのが良いのでしょうか?
それとも、フォーム上で和暦で入力されたデータ...続きを読む

Aベストアンサー

accessにデータを入れているのであれば、日付型のデータを使うのがよいと思います。場合によっては テキスト型(YYYYMMDD)の方が便利なときがあります。
表示(印刷)させるときに表示形式をformat関数などで調整するのが一番手がかからないと思います。 コンピュータの日付の表示を変えればコントロールの表示は変わる野ではないかと思います。(vb6のmonthviewではそうでした。)コントロールパネル→地域と言語のオプションで地域オプションの日付の表示方式を和暦にすれば表示されると思います。 ただしこれはコンピュータ自体の設定ですので、可能かどうかはユーザーさんに聞いてみないといけませんね。
もしも設定の変更が不可能ならカレンダーコントロールの上にテキストボックスを貼り付けてしまうとか、何とでもなると思います。
和暦のニーズとしては、お役所に提出する書類は和暦を使うものがほとんどだと思いますので、それなりにニーズはあると思います。 あと、桁数が少ないので、入力のキーストロークが少なくなるというのもあります。

Q自分のPCにIISを入れたときの、配布CGIの !/usr/bin/perl って?

よく無料で配布されている、
掲示板とかの初めの行に !/usr/bin/perl 
をプロバイダにあわせて直してくださいと
記述がありますが、、

自分のPCにIISをインストールして
運用したいとき、自分のPCがプロバイダ(?)
なわけで、どのように設定すればよいのでしょうか?

Aベストアンサー

何でもいいです。
!/usr/bin/perl 
でも
!/usr/local/bin/perl 
でも。
元々これはLinuxサーバ上での法則のようで、Windows上では無視されるようですよ。

参考URL:http://www.lira.co.jp/t-room/xp_server/

QAccess 西暦を和暦へ一括変換できますか?

西暦と和暦が混在しています。
これを和暦へ統一することはできるのでしょうか(逆の西暦への統一も)
1年づつ更新するのは面倒で・・・。

Aベストアンサー

西暦への変換の更新クエリです。

UPDATE テーブル名 SET フィールド1 = Format(CDate([フィールド1] & "1月1日"),"yyyy\年");

和暦の場合は、"yyyy\年" を "ggge\年" に。

QFortranのFormatについて

Fortranで数値を出力するときのFormatについて質問です。
数値を小数点を無くして、指数表示で出力したいです。

例えば
0.0025 を 25E-4
と出力するのが希望です。

調べたところ、
『■pe■.■e■』(■は数値)というFormatにすれば、
 1番目の値は小数点以上の桁数
 2番目の値は数値が入る幅
 3番目の値は小数点以下の幅
 4番目の値は指数の桁数
ということがわかりました。
『2PE8.3e1』だと 0.0025 は 25.00E-4 と出力されます。
『2PE6.1e1』だと 0.0025 は 25.E-4 と出力されます。
しかし、この小数点を消す方法がどうしてもわかりません。
『2pe6.0e1』と設定してもうまく出力されません。

詳しい方がいらっしゃったらぜひ教えてください。
よろしくお願いします。

Aベストアンサー

最近は使っていないのではっきりした事は言えませんが、E-type出力で小数点が消せないのでしたら、文字列に出力して小数点の部分を詰めた後、文字列をプリント出力する事でも多少回りくどいですが目的は実現できるのではと思われます。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報