A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
No3です。
イベント処理はちょっと置いておいて…
>Range("Database").Cells(insertRow, 11) = 依頼月日
↓
Range("Database").Cells(insertRow, 11) = Format(Date + フォーム名.依頼月日Spin.Value, "yyyy/mm/dd")
の直接入力ではうまくいかないのでしょうか?
(フォーム名は入力用フォームのオブジェクト名です)
補足ですがNo3で
>モジュールレベルで(グローバルに)定義すれば…
と書きましたが、フォームと本体は別モジュールになっている可能性が高そうなので、「モジュールレベルでグローバル」ではなく「プロジェクトレベルでグローバル」にしないとうまくいかないかも。
ご指示の方法で進めましたところエラーでした。
また、単純に「Format(date,"yyyy/mm/dd")」だと今日の日付が入ります。
いろいろ試行錯誤して結局変数を修正して何とかなりました。
Dim irai As Date
irai = 依頼月日.Value
Range("Database").Cells(insertRow, 11) = irai
で日付として張り付きました。書式通りに入りました。
fujillin様、感謝・感謝です。
さらに勉強します。
ありがとうございました。
No.3
- 回答日時:
No2です。
補足を見ると、
変数「依頼月日」は別のプロシージャーで値を代入しても、それぞれで区別される(別変数扱い)ために、元の「依頼月日」の値は0のままです。
それなので、No2の日にちを代入した時と同じこと(23の代わりに0日)が起きて「1900/01/00」と記されているのでしょう。
変数のスコープについて、確認してください。
http://homepage2.nifty.com/kasayan/vba/vba1.htm
http://pc.nikkeibp.co.jp/pc21/special/2007_gosa/ …
修正するには、変数をモジュールレベルで(グローバルに)定義すれば、スコープの問題は解決しますが、…
補足部分を見ると、
>Private Sub 依頼月日Spin_Change()
>依頼月日.Text = Format(Date + 依頼月日Spin.Value, "yyyy/mm/dd")
>End Sub
の部分って実際に実行されていますか?
どうもこのままだと、実行するとエラーになりそうな気がするのですが…
ところで、変更されるごとに値を取得しようとしているようですが、補足を見る限りでは変数に値を入れているだけなので、イベント処理は必要ないように思われます。
実際にセル(Range)に値を記入する時に、Formの内容を(1度だけ)読んで代入すればよいのではないでしょうか?
そうすればプロシージャー間で変数を受け渡す必要もなくなるので、スコープの問題もなくなるはずです。
ありがとうございます。いろいろ試しましたがうまくいきません。
やはり変数の問題のようです。グローバルタイプにすると「コンパイルエラー」「このメンバ識別子はオブジェクトモジュールの中に存在しています。」となります。他にフォーム内では使用していませんが他のオブジェクトでの使用をREMにしても同じです。
新しく単純なフォームから転記すると入力がm/dでもシリアル値で入り、書式どおりyyyy/mm/ddで表示されます。シートの日数カウントも問題ありません。
Private Sub CommandButton1_Click()
Range("K375").Value = TextBox1.Value
End Sub
新規レコードの挿入時の変数のスコープをもう少し勉強します。
No.2
- 回答日時:
月日だけでもいけます。
Sub test()
dt = "5/23"
Cells(1, 6).Value = dt
End Sub
だと、2009/5/23に
日付けだけだと・・・
Sub test()
dt = "23"
Cells(1, 6).Value = dt
End Sub
さすがにこれは1900/1/23となってしまいますが、
Dateシリアルで解釈されていることには変わりありません。
対象セルの書式設定を日付け型になさっていますか?
ご教授ありがとうございます。ご指示の部分をRUNさせると問題なく日付で認識されますが、やはり「ユーザーフォームのテキストボックスの日付」転記する形にするとうまくいきません。ちなみに下記はフォームのコードです。
'データをセルに入力
Dim Datarec As Integer
'Dim EndDay As Date
Dim 依頼月日 As Date '→これだと「1900/01/00」が転記される。セル書式通りだが・・・
~~~~
Datarec = Range("Database").CurrentRegion.Rows.Count - 4
Range("Database").Cells(insertRow, 1) = Datarec
Range("Database").Cells(insertRow, 2) = ファイル
If 関西.Value = True Then
Range("Database").Cells(insertRow, 3) = "関"
End If
Range("Database").Cells(insertRow, 4) = EndDay
Range("Database").Cells(insertRow, 5) = ***
Range("Database").Cells(insertRow, 6) = ***
Range("Database").Cells(insertRow, 7) = ***
Range("Database").Cells(insertRow, 8) = ***
Range("Database").Cells(insertRow, 9) = Formkind
Range("Database").Cells(insertRow, 10) = ***
Range("Database").Cells(insertRow, 11) = 依頼月日
~~~~
Private Sub 依頼月日Spin_Change()
依頼月日.Text = Format(Date + 依頼月日Spin.Value, "yyyy/mm/dd")
End Sub
こんな感じで転記してますが・・・
No.1
- 回答日時:
Sub try()
Dim st As String
st = "2009/04/17"
Range("A1").Value = st
MsgBox TypeName(Range("A1").Value)
End Sub
これでも日付型となりますが、もしかして月日しか与えていないとか?
年月日にしてみては。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Excel(エクセル) Excel シートに画像が貼ってあり、クリックすると入力シートにジャンプする機能 1 2023/01/14 22:41
- Excel(エクセル) 【エクセル】参照セルに何も入力が無い場合の空白表示方法 1 2022/05/26 10:01
- Excel(エクセル) Excelシフト表 固定シフトの自動変換化 1 2022/04/14 16:10
- Visual Basic(VBA) VBAで日付入力しているのですが 4 2023/03/02 11:25
- Visual Basic(VBA) 【VBA】指定した検索条件に一致したら別シートに転記したい 2 2022/03/23 16:14
- Excel(エクセル) Excel 売上管理シートに入力した売上データを、日報に自動反映させたいと考えています。 売上管理シ 3 2023/04/29 18:08
- Excel(エクセル) vba 同じブック内での転記について 4 2023/01/15 14:42
- Excel(エクセル) Excelで日報を自動で作成したい 売上管理シートに入力した売上データを、日報に自動反映させたいと考 1 2023/04/29 18:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PL/SQLでのTO_DATEの時間取得に...
-
ハッシュテーブル(連想配列)が...
-
power BI クエリエディター 〇...
-
VBA 違うシートにコピペしてソ...
-
オペランド
-
PysimpleGUIでデータベースを作る
-
Excel VBAのリストボックスの値...
-
Excel VBA 複数選択したリスト...
-
aspx.csからJSON形式にする方法
-
AccessVBA 帳票フォームの非連...
-
リストボックス内を検索(VB6.0)
-
vb6のVSFlexGridで選択行、列の...
-
VB.NetでMy.Settingsにセットさ...
-
C# get set
-
WebRequestでJavascriptの値取得
-
[VBA]選択範囲の下から上に処理...
-
VBA ドロップダウンリストを残...
-
VBで電卓のメモリー機能はどの...
-
VBA 「実行エラー”13” ...
-
ユーザーフォームのテキストボ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
マクロ 特定のセル値のみクリ...
-
VB.NETでコンボボックスの1行目...
-
変数名の取得
-
値を返さないコード パス
-
Excel VBAのリストボックスの値...
-
VB初心者。小数点以下の表示で...
-
ハッシュテーブル(連想配列)が...
-
textboxとLabelを動的に変更する
-
PL/SQLでのTO_DATEの時間取得に...
-
VB.NETでアクティブなformを知...
-
Excel vba ユーザーフォームテ...
-
マクロで奇数と偶数の値を2か所...
-
DataTableに対するLINQについて
-
【C++/CLI.NET】コンボボックス...
-
[VBA]選択範囲の下から上に処理...
-
範囲が指定されている乱数について
-
[VB.net] DataGridViewのコンボ...
-
変数に代入してある数値を表示...
-
vbscriptを使いexcelを参照して...
おすすめ情報