Word VBA質問箱 IV

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

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


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

【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の方に登録していませんか?
・ツリー全体表示

【609】Re:ご返答ありがとうございます
お礼  kuroda  - 09/2/27(金) 23:03 -

引用なし
パスワード
   詳しく指示していただき、ありがとうございます。
以下のようにして実行しますと、

Sub テキスト保存()
'
' テキスト保存 Macro
'
'
  ActiveDocument.SaveAs FileName:=ThisDocument.Path & "\" & Left(ThisDocument.Name, Len(ThisDocument.Name) - 4) & "txt", FileFormat:=wdFormatText, _
    LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _
    :="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
    SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
    False, Encoding:=65001, InsertLineBreaks:=False, AllowSubstitutions:= _
    False, LineEnding:=wdCRLF
End Sub

上記でマクロを実行しますと、エラーは出ないのですが、今度はファイル名がNormal.txtに固定されてしまい、元のファイル名が生かされないのです。
構文が間違っているのでしょうか。
(txtの前の.は削除させていただきました。ついているとNormal..txtとなったので)
何回も申し訳ありませんが、教えていただけませんでしょうか?
よろしくお願いいたします。
・ツリー全体表示

【608】Re:ご返答ありがとうございます
発言  マクロマン  - 09/2/27(金) 10:15 -

引用なし
パスワード
   >FileName:="あいうえお.txt"

この部分が保存するときのパス及びドキュメント名になります。

この部分に変数で作成した名前を代入します。

FileName:= 変数

なお、コードで分からない部分があったら、VBEで選択してF1キーを押したら
関連するヘルプが表示されます。
・ツリー全体表示

【607】ご返答ありがとうございます
お礼  kuroda  - 09/2/26(木) 23:37 -

引用なし
パスワード
   ▼マクロマン さん:
お返答どうもありがとうございます。
丁寧なご指示をいただいたのですが、何せVBAの知識が乏しいため、最終的にどのような構文にしたらいいのか、判らないのです。
現在、マクロを記録したままだと、

Sub テキスト保存()
'
' テキスト保存 Macro
'
'
  ActiveDocument.SaveAs FileName:="あいうえお.txt", FileFormat:=wdFormatText, _
    LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _
    :="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
    SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
    False, Encoding:=65001, InsertLineBreaks:=False, AllowSubstitutions:= _
    False, LineEnding:=wdCRLF
End Sub

となっているのですが、教えていただいた構文を何処へどのように挿入するのかがよく判らないのです。とりあえずやってみましたが、うまくいきませんでした。
もしよろしければ、最終的にどのような構文になるのかも、教えていただけませんでしょうか。
誠に勝手なお願いなのですが、よろしくお願います。
・ツリー全体表示

【606】Re:doc.ファイルをファイル名をそのままで...
発言  マクロマン  - 09/2/26(木) 13:57 -

引用なし
パスワード
   >win vistaでword 2007を使用している者です。

見落としてました。
当方Win XP SP2、Word2002で試しています。
手順や表示されるメッセージが違う可能性が大いにあります。
・ツリー全体表示

【605】Re:doc.ファイルをファイル名をそのままで...
発言  マクロマン  - 09/2/26(木) 13:46 -

引用なし
パスワード
   ドキュメントが格納されているフォルダの名前とドキュメント
の名前の取得方法です。

MsgBox ThisDocument.Path 'フォルダパス
MsgBox ThisDocument.Name 'ドキュメント

FileSystemObjectを使い、GetBaseNameで拡張子を除いた
ドキュメント名を取得する方法もあります。

ただ、今回はワードドキュメント限定ですので、
ThisDocument.Name
から拡張子部分を除いた左部分を取得、でもいけると思います。

MsgBox Left(ThisDocument.Name,Len(ThisDocument.Name)-4)

これに".txt"を付加すればテキストファイル名になります。
さらに
ThisDocument.Path
を前に付ければテキストファイルのパスになります。

ThisDocument.Path & "\" & Left(ThisDocument.Name,Len(ThisDocument.Name)-4) & ".txt"

テキスト形式で保存するのは、マクロの自動記録である程度のコードが得られます。
名前をつけて保存

ファイルの種類:書式なし(*.txt)
で"書式なし〜"の警告が出るので「はい」

「ファイルの変換」ウィンドウが出て、ここで「その他」を選択すると
Shift JISなどの形式を選択できます。
でも、ここには「UTF-8」は無いようです。

ですので、一度保存した後形式を変換するか、別の方法でテキストファイルを
作成する必要があるかもしれません。

この当りのshift JISとかUTF-8とかのことについては私自身詳しくはありません。
・ツリー全体表示

【604】doc.ファイルをファイル名をそのままでテキ...
質問  kuroda  - 09/2/26(木) 12:38 -

引用なし
パスワード
   初めてお世話になります。
win vistaでword 2007を使用している者です。
仕事がら、wordのドキュメントファイル(.doc)を名前を付けて保存で書式なし(.txt)保存をする機会が非常に多いので、この作業をマクロにしたいと常々思っています。
VBAについてはほとんど知識がないので、マクロの記録コマンドでマクロを作っております。
マクロの記録を使って私が作成すると、一応できるのですが、ファイル名と保存するフォルダ名が固定されてしまいます。
希望は、「あいうえお.doc」というファイルを、そのファイルが入っているフォルダに、同じファイル名で「あいうえお.txt」と保存したいのですが。
それと文字コードはUTF-8で保存したいと思います。
ご存知の方いらっしゃいましたら、よろしくお願い致します。
・ツリー全体表示

【603】Re:Word上のUserformから得た情報を所定の...
お礼    - 09/2/24(火) 17:48 -

引用なし
パスワード
   マクロマンさん

素早い返答ありがとうございます。
早速試して見たところ、望んでいた通りにできました。
ありがとうございます。

独学で学んでいたこともありわからないことだらけですが、もっと勉強をしてお手を煩わせないように頑張ります。
・ツリー全体表示

【602】Re:Word上のUserformから得た情報を所定の...
発言  マクロマン  - 09/2/24(火) 15:52 -

引用なし
パスワード
   忘れ物がありました。

>ExObj.Quit
↑の後に
Set ExObj = Nothing
も入れておいてください。
・ツリー全体表示

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