みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ACCESS どなたか教えてください。

現在,以下の構文を記載している状態です。

Private Sub コマンド62_Click()

Dim Appwo As Word.Application
Dim doc As Word.Document
Dim stPath As String

stPath = "C:\Users\pigo\Desktop\納品書.docx"

Set Appwo = CreateObject("Word.Application")
Set doc = Appwo.Documents.Open(stPath)

Appwo.Visible = True
With Appwo.Selection
.Find.Text = "明細"
.Find.Replacement.Text = Me.txt明細
.Find.Execute Replace:=wdReplaceAll
End With
With Appwo.Selection
.Find.Text = "納品日"
.Find.Replacement.Text = Me.txt納品日
.Find.Execute Replace:=wdReplaceAll
End With

Set Appwo = Nothing
Set doc = Nothing

End Sub

ここで質問なのですが,フォーム上には,納品日として「平成16年4月12日」と記載されているのです(フォームプロパティの書式は,[ggge\年m\月d\日])が,コマンド62を実行した結果のWord上では,「納品日」の部分の置き換えとして「2004/04/12」との表示となってしまいます。
Word上でもそのまま「平成16年4月12日」と表示させたいのですが,どうすればよいのか分かりません。

どなたかお教えいただければ幸いです。よろしくお願いいたします。

投稿日時 - 2011-02-08 22:56:33

QNo.6508407

困ってます

質問者が選んだベストアンサー

.Find.Replacement.Text = Me.txt納品日.Text
Textプロパティを使う。
でもフォーカスのない状態で使うと怒られるかも。
確実なのはFormat関数で変換する。
.Find.Replacement.Text = _
    Format(Me.txt納品日, "ggg年m月d日")

投稿日時 - 2011-02-08 23:59:18

お礼

大変参考になりました。
少し少しですが,皆さんに教えていただきながら,
知識をつけていただければと思ってます。
本当にありがとうございました。

投稿日時 - 2011-02-10 23:01:58

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

既に回答が出てますが、テストのやり方も含めて書いてみます。
質問のコードを一部修正(平成21年12月15日のところ、および質問に関係ない個所削除)
Private Sub コマンド62_Click()
Dim Appwo As Word.Application
Dim doc As Word.Document
Dim stPath As String
stPath = "C:\Documents and Settings\XXXX\My Documents\時刻挿入.doc"
Set Appwo = CreateObject("Word.Application")
Set doc = Appwo.Documents.Open(stPath)

Appwo.Visible = True
With Appwo.Selection
.Find.Text = "納品日"
.Find.Replacement.Text = "平成21年12月15日"
.Find.Execute Replace:=wdReplaceAll
End With
Set Appwo = Nothing
Set doc = Nothing
End Sub
をアクセスのモジュールで実行すると、ワード文書上で平成21年12月15日になりました。
と言うことは、テキストボックスの値は、書式編集しない限り、既定(標準)の2011/2/12式の日付書式になっている(または値としてはそうなっている)と思われるので、Format関数で平成21年12月15日のような文字列に変更してワードに置ける置換元データにすればよいと思う。

投稿日時 - 2011-02-09 10:38:24

お礼

ご回答ありがとうございました。皆さんからの回答でなんとかうまくいけました。しっかりと勉強してみたいと思います。また,質問させていただくこともあるかと思いますので,そのときはまたお願いいたします。

投稿日時 - 2011-02-13 10:23:43

ANo.4

『平成 表示 させたい』
これだけの検索でもヒントはでます。

ACCESS CLUB
とかのサイトを見てもよい。

掲示板は質問に対しての回答しか提供しない、のがほとんど。それに比べて自分で検索して探すと目的以上の知識が得られます。

投稿日時 - 2011-02-09 09:47:16

お礼

ご回答ありがとうございました。ネット上で何を検索すれば,ヒントにたどりつけるのか少しずつ分かってきました。勉強しています。ありがとうございました。

投稿日時 - 2011-02-13 10:19:57

ANo.3

答えだけ教えてもまた質問になりそうだ。

これができて、基本的なことができない事に気付くべき。

教えてもらう、実行
修正、悩む
また教えてもらう、実行
修正、悩む
また教えてもらう、実行

なんとも無駄なやり方、教え方、教わり方。
自分で考えたり調べることができるようになれば同じような質問はしなくて済む。聞いてばかりだからすぐ困るのでないか?。
また困ったーとなりたくなければ、そこも意識しよう。


FORMAT関数使う。
これだけで後は考えて、というくらいでないと。

投稿日時 - 2011-02-09 09:23:57

お礼

ご回答ありがとうございます。やはり基礎の勉強をとおりこして回答だけを求めても力にはなりませんね…実感しています。大変参考になりました。

投稿日時 - 2011-02-13 10:18:26

ANo.2

.Find.Replacement.Text = Me.txt納品日



.Find.Replacement.Text = Format(CDate(Me.txt納品日.Value), "ggg\年m\月d\日")

に変更。

投稿日時 - 2011-02-09 00:03:07

お礼

早速の回答ありがとうございました。
参考にさせていただき,なんとかうまくいきました。
もっと勉強しなければと痛感しているところです。
ありがとうございました。

投稿日時 - 2011-02-10 23:00:10

あなたにオススメの質問