Excel/VBA備忘録(13)何年かの間にある月の数を調べてみる
たまにエクセル(Micorosoft Excel)で関数とかオプション、マクロ(VBA)を使うこともあるんですが、昔使ったことがある手法があったとしますよね。
んで、その時すでにその手法を忘れてて、「どうだったかなぁ~?」とか言いながら、結局Webを探し回ると凄く時間と労力がかかるんで、とりあえず、自分用に、忘れたときのメモとして、Excelの関数やVBAの手法を書こうと思います。
ちなみに、本文章についてご質問を承っても十分な回答を差し上げる自信は全くありません。
とある事情で、十何年かの期間は何ヶ月あるのか、ってことを調べることとなりました。
しかし、私、こういった日付計算が大嫌いで、昔なら、「じょ、冗談じゃないっ!!」って叫んでいるところですが、今の世の中、何かしら自動計算できる方法があるのでは無いかと思い、Webを彷徨っておりましたら、良さそうなものがありましたので紹介しましょう。
Function SamplePro()
On Error GoTo err_SamplePro
Dim strA As String ' 変数を宣言します。
Dim strMsg As String
strA = InputBox("本日からの経過日数を表示します。" & _
"yyyy/m/d 形式で入力してください。")
If IsDate(strA) = False Then MsgBox "日付形式と認識できません。": End
'Now関数と組み合わせています。
strMsg = strA & "は、今日から " & DateDiff("d", Now, strA) & "日後です。"
MsgBox strMsg
Exit Function
err_SamplePro:
MsgBox "予期せぬエラーが発生しました。" & vbNewLine & _
"エラー番号: " & Err.Number & vbNewLine & _
"エラー内容:" & Err.Description
Exit Function
End Function
(DateDiff 関数…:一日一見より引用)
これは、(Microsoft)Accsessのことを書かれているサイトさんなんですが、VBAには変わり無いんで、ちょっと拝借します。
このコードは、希望する日付を入力(これを実行するとウインドウが出て入力を促す)すると、今(まぁ、パソコンの時計)から何日経過しているか、っていうことをメッセージボックスで表示するってものです。
で、今回は、何時から何時まで、って感じで計算したいので、こいつを私なりに変えたコードを下記に示します。
Sub nissu_keisan()
Dim strA As String ' 変数を宣言します。
Dim strMsg As String
MsgBox DateDiff("m", Range("a1").Value, Range("b1").Value) & "箇月です。"
End Sub
これは、セルA1に計算を開始する日付を、セルB1に終了する日付を入力して実行すると、その期間、何箇月あるかってのをメッセージボックスへ出力します。
ここでミソなのが、上記赤字で示した箇所です。
この場合"m"を指定していますが、そうするといわゆる"月"を指定することとなります。
他にも、色々あるようなんで、詳しくはここをクリックお願いします。
で、実際に実行してみますと、
と、まぁこんな感じです。
なお、もし上手くいかない場合、私が説明できるのはここまでですので、後はWebかなんかで頑張って調べてみてください。
(リンク先(多謝): Microsoft Access Club)
”グッ”と来ることが書いてあったらクリックお願いします
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
![]() |
![]() |
![]() |
« おでかけ情報(JRおでかけネットより) | トップページ | 2008年 北遠の旅(1) »
「Excel/VBA」カテゴリの記事
- Excel/VBA備忘録(14)ある範囲のデータを(リンクされた)図として別の場所に貼り付ける『カメラ』機能を使う(2009.04.18)
- Excel/VBA備忘録(13)何年かの間にある月の数を調べてみる(2008.09.14)
- Excel/VBA備忘録(12)シート(名)のリストを作ってみる(2008.09.12)
- Excel/VBA備忘録(11)Sendkeysステートメントでキーを複数回押したような動作をさせてみる(2008.08.09)
- Excel/VBA備忘録(10)条件付き書式を使う(2008.04.23)
コメント