[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『B2から横にその日付が横に並ぶように』(pink)
[初心者です・・・。フォームを作ってテキストBOXに○月○日〜○月□日と書いて実行ボタン(コマンドボタン)を押すと、エクセルの方(B2)から横にその日付が横に並ぶように表示出来るようにしたいのですができますか?教えてください。]
テキストボックスやコマンドボタンですと自動的にVBAで、という話になりますが、 通常機能で十分対応できます。 ○月○日をB1、〜をC1、○月□日をD1へ入力するとします。 つまり、B1とD1へ日付を入力するような形です。
C2の式を列方向へコピーして必要数確保します。 2行目の日付が入るセルの書式設定を日付にしておけば完成。 (もしかしたらVBAのコードを教えてほしかったんでしょうか?) (KAMIYA)
そのようになっていますが? >エクセルの方(B2)から横にその日付が横に並ぶように とあったので、B2からの数式入力になっています。 それとも、フォームというのはシートに作成する定型フォームのようなものではなくて、 「ユーザーフォーム」のことでしょうか。 (KAMIYA)
ユーザーフォームのひとつのテキストボックスへ「4月10日〜4月15日」を 「手入力」ですか? あまりお勧めできませんが・・・。 Private Sub CommandButton1_Click() Dim SDate As Date Dim Edate As Date Dim MyVar As Variant Dim MyDays As Integer Dim MyRng As Range
With ActiveSheet
Set MyRng = .Range("B1")
If MyRng.Value <> "" Then
.Range(MyRng, MyRng.End(xlToRight)).ClearContents
End If
End With
MyVar = Split(Me.TextBox1.Value, "〜")
SDate = MyVar(0)
Edate = MyVar(1)
MyDays = Edate - SDate
For i = MyRng.Column To MyDays + MyRng.Column
MyRng.Offset(, i - MyRng.Column) = SDate + i - MyRng.Column
Next i
End Sub
全半角数字お構いなし、m月d日、m/dのどちらでも入力はOKですが、
「〜」だけは固定です。入力された日付は当年の日付として認識されます。
(KAMIYA)
Dim MyVar As Variant
MyVar = Split(Me.TextBox1.Value, "〜")
以上は不用。
SDate = MyVar(0)
Edate = MyVar(1)
この部分で、MyVar(0)、MyVar(1)の部分を、
テキストボックスで入力した月日から作成した日付の文字列へ
置き換えればよいのです。
(KAMIYA)
月と日のテキストボックスの値と文字列"/"を文字列演算子&で結合して
日付形式の文字列を作成し、それぞれSdate、EDateへ代入します。
具体的なコントロール名までわからないので、そちらで変更する必要が
あるかもしれませんが、Sdate(開始日)の場合は
SDate = Me.TextBox1.Value & "/" & Me.TextBox2.Value
コンナ感じでしょう。もうかたっぽはこれを手本に作ってみておくんなさいまし。
Sdate、EDateはそれぞれ日付型の変数なので、日付形式の文字列代入で
自動的に日付データとして代入してくれます。
日付型のデータはワークシートの値として入力することでエクセル側でシリ
アル値に変換されます。
ちなみに、年をまたぐ場合は「年」のテキストボックスも必要です。
(KAMIYA)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.