Excel VBA質問箱 IV

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

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


7784 / 13644 ツリー ←次へ | 前へ→

【36793】textboxの内容の印刷について まだまだ初心者 06/4/13(木) 23:58 質問[未読]
【36797】Re:textboxの内容の印刷について ぱっせんじゃー 06/4/14(金) 8:45 発言[未読]
【36799】Re:textboxの内容の印刷について まだまだ初心者 06/4/14(金) 9:47 発言[未読]
【36800】Re:textboxの内容の印刷について ぱっせんじゃー 06/4/14(金) 10:01 発言[未読]
【36833】Re:textboxの内容の印刷について まだまだ初心者 06/4/14(金) 21:23 発言[未読]
【36836】Re:textboxの内容の印刷について neptune 06/4/14(金) 21:42 発言[未読]
【36843】Re:textboxの内容の印刷について まだまだ初心者 06/4/15(土) 9:10 発言[未読]
【36897】Re:textboxの内容の印刷について neptune 06/4/17(月) 17:46 回答[未読]
【36898】Re:textboxの内容の印刷について まだまだ初心者 06/4/17(月) 18:06 お礼[未読]
【36905】Re:textboxの内容の印刷について neptune 06/4/17(月) 21:23 発言[未読]

【36793】textboxの内容の印刷について
質問  まだまだ初心者 E-MAIL  - 06/4/13(木) 23:58 -

引用なし
パスワード
   よろしくお願いします。
一つのformにtextboxが1つとimageが3つあります。
その内容を印刷したいと思っていますが、うまくいかずに困っています。
textboxの内容は別に保存してあるtextファイルの内容を読み込んで表示しているのですが、内容の量はまちまちで、かなり長い場合(セルをいくつも結合しなければ表示しきれない)こともあれば、短い(一つのセルに収まりきる)場合もあります。
textboxの内容は改行を含んでいます。
どのように印刷したいのかといえば、A4の用紙に、まずtextboxの内容を印刷し、その下にimageを3つ横に並べて印刷させたいのですが、やり方がわからず困っています。
どのような解決方法があるのでしょうか?

【36797】Re:textboxの内容の印刷について
発言  ぱっせんじゃー  - 06/4/14(金) 8:45 -

引用なし
パスワード
   PrintForm メソッド
でいかがでしょう?

【36799】Re:textboxの内容の印刷について
発言  まだまだ初心者  - 06/4/14(金) 9:47 -

引用なし
パスワード
   お返事ありがとうございます。
printformメソッドだと、
hightが573.75、widthが768に設定してあるフォームなので、
右端の部分が切れてしまうのと、textboxもスクロールしてみるようになっているので、やはり表示されていないtextboxの内容がプリントできません。
何か解決方法はないものでしょうか?
よろしくお願いいたします。


▼ぱっせんじゃー さん:
>PrintForm メソッド
>でいかがでしょう?

【36800】Re:textboxの内容の印刷について
発言  ぱっせんじゃー  - 06/4/14(金) 10:01 -

引用なし
パスワード
   テキストボックスの内容をシートに転記し、
ImageもコントロールツールボックスのImage
かシェイプでシートに表示するようにして
シートを印刷してはいかがでしょう?

【36833】Re:textboxの内容の印刷について
発言  まだまだ初心者 E-MAIL  - 06/4/14(金) 21:23 -

引用なし
パスワード
   お返事ありがとうございます。
その方法であると、セルの高さの上限が決まってしまっているので、
テキストボックスの内容が入りきらないという事態が起こってしまいます。
セルを結合させていけば、入る内容も多くなるので、たくさん結合すると
内容が入りきるようにはなるのですが、
autofitメソッドを用いて自動でセルの高さを調整することができません。
またテキストボックスの内容からいくつセルを結合すればよいかを決めるという方法もどうしたらよいのか分からない状況です。
まず基本的にどうしたら良いのかが分からず、五里霧中の状態です。
よろしくお願い致します。


▼ぱっせんじゃー さん:
>テキストボックスの内容をシートに転記し、
>ImageもコントロールツールボックスのImage
>かシェイプでシートに表示するようにして
>シートを印刷してはいかがでしょう?

【36836】Re:textboxの内容の印刷について
発言  neptune  - 06/4/14(金) 21:42 -

引用なし
パスワード
   やったことはないし、API使うのですが、
メモ帳にでも貼り付け、印刷したらどうでしょうか?
SendMessageでメッセージを送るのと、
OpenClipboard、GetClipboardData等クリップボード関係
のAPIを使うぐらいと思います。

API使わない方法なら、WordをOLEで使うとか

【36843】Re:textboxの内容の印刷について
発言  まだまだ初心者 E-MAIL  - 06/4/15(土) 9:10 -

引用なし
パスワード
   neptuneさん
お返事ありがとうございます。
全くやったことのない技術ですが、
調べながらやってみます。


▼neptune さん:
>やったことはないし、API使うのですが、
>メモ帳にでも貼り付け、印刷したらどうでしょうか?
>SendMessageでメッセージを送るのと、
>OpenClipboard、GetClipboardData等クリップボード関係
>のAPIを使うぐらいと思います。
>
>API使わない方法なら、WordをOLEで使うとか

【36897】Re:textboxの内容の印刷について
回答  neptune  - 06/4/17(月) 17:46 -

引用なし
パスワード
   Wordを使うのは簡単に出来るようですよ。

参照設定でWordにチェック必要。サンプルです。
Private Sub CommandButton2_Click()
Dim objWord As Word.Application
Dim objDoc As Word.Document
  Set objWord = New Word.Application
  objWord.Visible = True
  Set objDoc = objWord.Documents.Add(, , , True)
  With objDoc
    .Range.Text = Me.TextBox1.Text
'    .PrintOut '各種設定は自分で。このままでもOKかもしれないです。
    DoEvents  '必要かどうか不明だが一応書いている。無くても問題は無いと思う?
    .Close wdDoNotSaveChanges
  End With
  Set objDoc = Nothing
  objWord.Quit
  Set objWord = Nothing
End Sub

立ち上がるのがまどろっこしいので、メモ帳かWordPadがいいかも?
そのうち、Testしたら書き込むかも?

【36898】Re:textboxの内容の印刷について
お礼  まだまだ初心者 E-MAIL  - 06/4/17(月) 18:06 -

引用なし
パスワード
   ▼neptune さん:
お返事ありがとうございます。
何とか四苦八苦しながら、一応できるようになりました。
ただ写真を文末に付けようとすると、文章がクリアされてしまうので、
文頭に写真をつけるという少し変な印刷ですが。
以下にコードを書いておきます。

Option Explicit
  Dim objWord As New Word.Application   'Wordアプリケーション
  Dim objWordDoc As Word.Document     'Wordの新規文書

Private Sub cmb3_Click()

  Dim 写真1 As Shape
  Dim 写真2 As Shape
  Dim 写真3 As Shape
  Dim 写真1の場所 As String
  Dim 写真2の場所 As String
  Dim 写真3の場所 As String
  Dim 指定行 As Long
  Dim 保存指定フォルダ名 As String
  Dim 内容 As String

  Dim myReturn As Integer
  
  保存指定フォルダ名 = "C:\mydocuments"
  指定行 = 2
  写真1の場所 = 保存指定フォルダ名 & "情報\" & 指定行 & "_1.jpg"
    写真2の場所 = 保存指定フォルダ名 & "情報\" & 指定行 & "_2.jpg"
      写真3の場所 = 保存指定フォルダ名 & "情報\" & 指定行 & "_3.jpg"

  Sheets("印刷各種情報").Range("A1") = tbx1.Value 'テキストの内容
  内容 = tbx1.Value


    On Error GoTo 写真がない場合
  
  With Sheets("印刷各種情報").Range("A3")
    Set 写真1 = Sheets("印刷各種情報").Shapes.AddPicture(写真1の場所, False, True, .Left, .Top, .Width, .Height)
      End With
      With Sheets("印刷各種情報").Range("B3")
    Set 写真2 = Sheets("印刷各種情報").Shapes.AddPicture(写真2の場所, False, True, .Left, .Top, .Width, .Height)
      End With
      With Sheets("印刷各種情報").Range("C3")
    Set 写真3 = Sheets("印刷各種情報").Shapes.AddPicture(写真3の場所, False, True, .Left, .Top, .Width, .Height)
End With

     Sheets("印刷各種情報").Range("A3:C3").Copy

With objWord
    .Visible = True           'Wordを表示
    .WindowState = wdWindowStateMaximize 'ウィンドウを最大表示
    .Documents.Open 保存指定フォルダ名 & "\情報印刷用.doc"
 
    Set objWordDoc = .ActiveDocument

   
    '文書にテキストを挿入
    With .Selection
           .PasteSpecial Placement:=wdInLine, DataType:=wdPasteMetafilePicture
             .InsertParagraphAfter
.InsertParagraphAfter
.InsertParagraphAfter
           .InsertAfter 内容
    
    End With
    
     End With
    
   '印刷(印刷中はマクロの実行は中断する)
  objWord.PrintOut Background:=False
  
  '文書を保存せずに閉じる
  objWordDoc.Close SaveChanges:=False
  
  objWord.Quit        'Wordを終了する
  
  Set objWord = Nothing    'オブジェクト変数をクリアする
  Set objWordDoc = Nothing


写真がない場合:
  Resume Next

End Sub

【36905】Re:textboxの内容の印刷について
発言  neptune  - 06/4/17(月) 21:23 -

引用なし
パスワード
   ▼まだまだ初心者 さん:
頑張りましたね。
>何とか四苦八苦しながら、一応できるようになりました。
これが、一番の上達方法と思います。偉い!

まだまだ初心者 さんにとって、新しい手法の練習になりましたね。

7784 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free