Word VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


15 / 45 ページ ←次へ | 前へ→

【629】Re:フォームテキスト入力
回答  りる  - 09/5/5(火) 20:00 -

引用なし
パスワード
   すみん さん、こんばんわ。

>今回は、先頭でしたが、先頭から、3行目に転記する場合は、どのようにすればいいのでしょうか?
>
>With ActiveDocument.Range(Start:=0, End:=1)のStart:=0, End:=1の部分を変更すれば可能なのでしょうか?

RangeよりもSelectionを使ったほうがわかりやすい(というか簡単)みたいなので、方法を変えました。

文書頭にカーソルを持ってきて、下に2行移動するイメージです。

Private Sub CommandButton1_Click()
  'ドキュメントの先頭
  ActiveDocument.Range(Start:=0, End:=0).Select
  '3行目に移動(下に2つ移動)
  Selection.MoveDown wdLine, 2, wdMove
  'そこに文字を挿入(選択範囲の拡張なし)
  With Selection
   .InsertBefore TextBox1.Text
   .Collapse Direction:=wdCollapseEnd
  End With
  'Formを閉じる
  Me.Hide
End Sub
・ツリー全体表示

【628】複数のフォーム対応
質問  スーザン  - 09/5/5(火) 15:04 -

引用なし
パスワード
   フォームの転記方法を、すみさんの質問より拝見しました。
私も、参考にさせていただきましが、フォームが複数の場合は、どのようにしたらいいのでしょうか。

具体的に言いますと、フォームが複数あり、ワードのシートに転記したいのです。

フォームAの情報を、ワード上の7段目
フォームBの情報を、ワード上の8段目
フォームCの情報を、ワード上の9段目
フォームDの情報を、ワード上の10段目に、入力後、コマンドボタンをクリックして、ワード上にそれぞれ転記する。

このような方法を教えてください。
・ツリー全体表示

【627】Re:フォームテキスト入力
質問  すみん  - 09/5/5(火) 13:36 -

引用なし
パスワード
   ▼りる さん:
りるさん、ありがとうございます。

僕の表現が悪かったんですが、りるさんの回答のとおり、テキストボックスに入力した情報を、コマンドボタンのクリックによる転記による方法です。

今回は、先頭でしたが、先頭から、3行目に転記する場合は、どのようにすればいいのでしょうか?

With ActiveDocument.Range(Start:=0, End:=1)のStart:=0, End:=1の部分を変更すれば可能なのでしょうか?
・ツリー全体表示

【626】Re:フォームテキスト入力
回答  りる  - 09/5/5(火) 7:16 -

引用なし
パスワード
   すみん さん、おはようございます。

>ユーザーフォームのテキストボックスに入力した文字をワード上に表示させるにはどのようにしたらいいのでしょうか?
>ワードの表示場所は、先頭になります。
どのタイミングで転記するのかわからないので、コマンドボタン(CommandButton1)クリックで転記する例です。

UserForm1にCommandButton1とTextBox1を配置して、以下を記述。

Private Sub CommandButton1_Click()
  '常にドキュメントの先頭に挿入する場合
  With ActiveDocument.Range(Start:=0, End:=1)
   .InsertBefore TextBox1.Text
   .Collapse Direction:=wdCollapseEnd
  End With
End Sub
・ツリー全体表示

【625】フォームテキスト入力
質問  すみん  - 09/5/3(日) 19:14 -

引用なし
パスワード
   ワードのVBAを使用するのがはじめてで、悪戦苦闘しています。

ユーザーフォームのテキストボックスに入力した文字をワード上に表示させるにはどのようにしたらいいのでしょうか?

ワードの表示場所は、先頭になります。
・ツリー全体表示

【624】Unknown
発言  jack3_as  - 09/4/28(火) 0:49 -

引用なし
パスワード
  
・ツリー全体表示

【623】Re:ダブルクリックでuserformを表示
回答  りる  - 09/4/26(日) 11:56 -

引用なし
パスワード
   hikka さん、こんにちわ。

>ワード文章上でダブルクリックしたらuserformが出るようにしたいのですが可能でしょか?
>excelでは
>Public Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
>   UserForm1.Show
>End sub
>みたいにできればと思っているのですが。
>よろしくお願いします。

ダブルクリックのイベントを起こすにはclassを利用します。

該当のドキュメントに
挿入→クラスモジュール(初期ネームはClass1)
Class1に以下のイベントを記述(ヘルプのサンプルをそのまま記述しています)
'/////Start
Public WithEvents appWord As Word.Application

Private Sub appWord_WindowBeforeDoubleClick _
    (ByVal Sel As Selection, Cancel As Boolean)
  Dim intResponse As Integer
  intResponse = MsgBox("Selection = " & Sel & vbLf & vbLf _
    & "Continue with operation on this selection?", _
    vbYesNo)
  If intResponse = vbNo Then Cancel = True
End Sub
'/////End

Thisdocumentに以下を記述
'/////Start
Dim X As New Class1 'Classモジュール名に合わせる
'閉じるとき開放
Private Sub Document_Close()
 Set X = Nothing
End Sub
'イベントを起こす
Private Sub Document_Open()
 Set X.appWord = Word.Application
End Sub
'/////End

保存して閉じ、ドキュメントをマクロを有効にして開けばイベントが有効になります。
今回のイベントはサンプルをそのまま転記したのでメッセージが出ますが、そこにフォームを表示するコードを書いてみてください。
・ツリー全体表示

【622】ダブルクリックでuserformを表示
質問  hikka  - 09/4/20(月) 21:28 -

引用なし
パスワード
   ワード文章上でダブルクリックしたらuserformが出るようにしたいのですが可能でしょか?
excelでは
Public Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   UserForm1.Show
End sub
みたいにできればと思っているのですが。
よろしくお願いします。
・ツリー全体表示

【621】Wordにて作成したUserformをWeb上で出現で...
質問    - 09/3/18(水) 11:26 -

引用なし
パスワード
   No.599の投稿との関連です。

現在、以下の作業をおこなっています。
1.Wordから作成したUserformを呼び出す。
2.Userformに記入した内容を自動的に所定のExcelファイルに保存する。
3.このWordファイルをWebページとして保存し、HP上にUpする。
1.と2.までは等質問箱の方の助力のおかげでできたのですが、3.がうまくいきません。

まず第一に、Word上にUserformを出現させるCommand Buttonを置いているのですが、Web page上ではUserformが出現しません。
(同じことをExcelをwebに載せて行った時はUserformは出現します。)
これは何か特別なプログラムを組む必要があるのですか?

次に、この内容は2.の段階のものなのですが、デスクトップ上でWordからExcelを参照し自動保存を行った時、一回目は何もerrorが出ずにできるのですが、そのままWordを閉じずに同じことを実行するとerrorが出ます。(一度Wordを保存して、もう一度同じことをしたときにはerrorはでません。)参考に内容を添えるので原因を教えていただきたいです。いつも始めのrangeのところや、Do untilのところでErrorが出ます。


Private Sub Enter_Click()

Dim ExObj As Object
Dim objwb As Object
Dim wbpath As String
wbpath = "C:\Documents and Settings\アンケート"

Set ExObj = CreateObject("Excel.Application")
Set objwb = ExObj.Workbooks.Open(wbpath)

'入力場所選択
objwb.Sheets("データ").Select
Range("A2").Select

Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select

Loop

'Data入力

ActiveCell.FormulaR1C1 = "=R[-1]C+1"
ActiveCell.Offset(0, 1).Select

ActiveCell.Value = Label6
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Label3
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Label1
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Label5
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Label4
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Label7
ActiveCell.Offset(0, -6).Select

'月別Data入力

ActiveCell.Copy

If Format(Text入力日付, "mm") = "10" Then
Sheets("10月").Select
ElseIf Format(UserForm1.Text入力日付, "mm") = "11" Then
Sheets("11月").Select
ElseIf Format(UserForm1.Text入力日付, "mm") = "12" Then
Sheets("12月").Select
ElseIf Format(UserForm1.Text入力日付, "mm") = "01" Then
Sheets("1月").Select
ElseIf Format(UserForm1.Text入力日付, "mm") = "02" Then
Sheets("2月").Select
ElseIf Format(UserForm1.Text入力日付, "mm") = "03" Then
Sheets("3月").Select
ElseIf Format(UserForm1.Text入力日付, "mm") = "06" Then
Sheets("6月").Select
ElseIf Format(UserForm1.Text入力日付, "mm") = "07" Then
Sheets("7月").Select
ElseIf Format(UserForm1.Text入力日付, "mm") = "08" Then
Sheets("8月").Select
ElseIf Format(UserForm1.Text入力日付, "mm") = "09" Then
Sheets("9月").Select

End If

Range("A2").Select

Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select

Loop

ActiveCell.PasteSpecial Paste:=xlPasteValues

ActiveCell.Offset(0, 1).Select

ActiveCell.Value = Label6
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Label3
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Label1
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Label5
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Label4
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Label7


Me.Hide

objwb.Save
objwb.Close
Set objwb = Nothing
ExObj.Quit
Set ExObj = Nothing

End Sub
・ツリー全体表示

【620】Re:Word上のUserformから得た情報を所定の...
発言    - 09/3/10(火) 17:35 -

引用なし
パスワード
   ご指摘ありがとうございます。
改めて別に質問を立ち上げたいと思います。
・ツリー全体表示

【619】Re:Word上のUserformから得た情報を所定の...
発言  マクロマン  - 09/3/7(土) 16:18 -

引用なし
パスワード
   当初の質問から変わってくる場合は、新規に質問を立ち上げた方が
回答が付きやすいと思いますよ。
・ツリー全体表示

【618】Re:Word上のUserformから得た情報を所定の...
質問    - 09/3/5(木) 17:55 -

引用なし
パスワード
   再度質問で申し訳ありません。

以前に回答していただいた方法によりWord→Excelの自動入力はできるようになったのですが、Wordにて作成したUserformはWebページとして保存をした時にHP上で出現させることはできないのですか?
Excelで作成したUserformは、Command ButtomをクリックすることでHP上でも現れたのですが・・・
・ツリー全体表示

【617】Re:テキストファイル
発言  マクロマン  - 09/3/3(火) 18:53 -

引用なし
パスワード
   一度ワードに読込んで編集、編集後のもののテキストファイルに
出力、とする場合はマクロの自動記録が参考になると思います。

テキストファイルへの書き出しは、↓の過去ログが参考になると思います。

doc.ファイルをファイル名をそのままでテキスト保存するマクロ
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=604;id=word
・ツリー全体表示

【616】Re:テキストファイル
発言  マクロマン  - 09/3/3(火) 17:35 -

引用なし
パスワード
   読込んで何か編集してから書き出すのでしょうか?
何も編集しないなら、テキストファイルのコピーではダメでしょうか?
・ツリー全体表示

【615】テキストファイル
質問  [名前なし]  - 09/3/3(火) 11:21 -

引用なし
パスワード
   VBAでテキストファイルを読み込んで別のテキストファイルに書き出すことは可能でしょうか。

ご存知の方は教えてください。
よろしくお願いします。
・ツリー全体表示

【614】Re:ご返答ありがとうございます
お礼  kuroda  - 09/2/28(土) 10:58 -

引用なし
パスワード
   ▼マクロマン さん:
成功しました! これから作業がずっと楽になります。
何回も説明していただき,誠にありがとうございました。
・ツリー全体表示

【613】Re:ご返答ありがとうございます
発言  マクロマン  - 09/2/28(土) 9:32 -

引用なし
パスワード
   マクロを自ドキュメントではなくNormalの方に登録しないといけない、
ということでしたら、

ThisDocument

ActiveDocument
に書き換えてください。
これですと、アクティブになっているドキュメント
が対象になります。

ThisDocument
は、マクロが登録されているドキュメントが対象になります。
・ツリー全体表示

【612】Re:ご返答ありがとうございます
お礼  kuroda  - 09/2/28(土) 9:22 -

引用なし
パスワード
   何度も,ありがとうございます。

>マクロを自ブックの標準モジュールではなく、Normalの方に登録していませんか?

はい,Normalの方に登録しています。
どのファイルを開いているときでも,そのマクロが使えるのでNormalに登録しているのですが……。
マクロの登録場所の問題でしょうか?
・ツリー全体表示

【611】Re:ご返答ありがとうございます
発言  マクロマン  - 09/2/28(土) 8:52 -

引用なし
パスワード
   >自ブック

自ドキュメント
でした。エクセルでのクセが・・・。

失礼しました。
・ツリー全体表示

【610】Re:ご返答ありがとうございます
発言  マクロマン  - 09/2/28(土) 8:51 -

引用なし
パスワード
   マクロを自ブックの標準モジュールではなく、Normalの方に登録していませんか?
・ツリー全体表示

15 / 45 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
207512
(SS)C-BOARD v3.8 is Free