【無料配信♪】Renta !全タテコミ作品第1話

OSは、WindowsNTです。アプリケーションは、Excel97です。
以前、こちらで「フォーム」の「ボタン」で印刷ボタンを作る方法を教えて頂いたのですが、「コントロールツールボックス」の「コマンドボタン」で印刷ボタンを作る事は出来るでしょうか?
説明不足な点がありましたら補足させて頂きますので、宜しくお願い致します。

A 回答 (2件)

シートにボタンを貼り付けます。

ボタン名とかはデザインモードで右クリックしてプロパティのダイアログを出して変更します。

コードはデザインモードでボタンをダブルクリックしてVBE画面に移り、

Private Sub CommandButton1_Click()
  ActiveSheet.PrintOut
End Sub

で印刷ボタンの完成です。

個人的な方法かもしれませんが、1シートには1つの印刷領域しか設定しないようにして、個々のシートは印刷プレビューで設定を行い、マクロ側には印刷設定を書き込まないようにしています。マクロの記録を貼り付けるとその環境のみの(プリンタ等に依存した)マクロになりかねないからです。プレビュー画面からなら設定変更が容易になります。

ご参考に。
    • good
    • 0

こんにちは。

maruru01です。
コマンドボタンのクリックイベントに印刷するようにコードを書けばいいと思います。
コマンドボタンをシートに貼り付け、デザインモードでダブルクリックすれば自動的にVBEが起動してクリックイベント(中身はない)が作られます。
コーディングの詳細は、VBEを起動してヘルプに「印刷」と入れて検索すると、いろいろ載ってます。
ちなみに、私の環境はWindows2000のExcel2000なので、多少違うかも知れません。
では。

この回答への補足

早速のお返事、ありがとうございます。
やり方は理解できたのですが、印刷を指示するコードが分かりません。
もしお分かりになれば、教えてください。宜しくお願いします。

補足日時:2001/10/19 14:55
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qユーザーフォームを表示中にシートの操作をさせるには

ユーザーフォームを表示中にシートの操作をさせる事はできるのでしょうか。
セルへの入力、画面のスクロールなどは、ユーザーフォームからマクロを実行させたり、.hideでユーザーフォームを一時的に隠すなどすればいいのでしょうが、そういう手段をとらないでユーザーフォームを表示中にシートの操作をさせる事はできるのでしょうか。

Aベストアンサー

ユーザフォームの
ShowModalプロパティを
falseにすればよいかと。

Q【Excel VBA】マクロでExcel自体を終了させたい

環境:WindowsXP、Excel2003

マクロでエクセルを終了(ブックを閉じて、アプリケーション自体も終了)させたいのですが、以下のコードではアプリケーションが閉じてくれません。

ThisWorkbook.Close
ExcObj.Quit
Application.Quit

どこか悪いところはありますでしょうか?

よろしくお願いします。

Aベストアンサー

普通に考えれば質問者のコードで上手くいきそうですが
hana-hana3さんの回答にもあるようにThisWorkBook.Closeでコード終了となりますので
Application.QuitをThisWorkBook.Closeの前にもってこないといけません。
Application.Quitはそれがあるプロシージャのコードが全て終わるまで
その実行を保留するちょと特別動作をします。

'-------------------------------------
 Application.Quit
 ThisWorkbook.Close
'-------------------------------------
 
 

Qコマンドボタンをクリックでシートからシートに移動させたい

sheet1にコマンドボタンをつくり、これをクリックすると
sheet2に移動するという風にしたいです。
sheet1は名前が 入力画面
sheet2は名前が 合計 となっています。
この時のコードをどう入力すべきか教えていただきたいです。
Private Sub CommandButton1_Click()と
End Sub
の間に何を入力するべきか正確に教えてください。
よろしくお願いします。

Aベストアンサー

シート【合計】をアクティブにするのなら

Private Sub CommandButton1_Click()
Worksheets("合計").Activate
End Sub

とか?

Qチェックボックスの箱のサイズとフォントサイズは変更できるの?

こんにちわ。

エクセル2000でチェックボックスを作成したのですが、
やや、小さいのでサイズを大きくしたいのです。
ボックスサイズ、ボックスの横に入れる文字の
フォントサイズは大きくできるのでしょうか?
もし、できるのなら方法を教えてください。

よろしくおねがいします。

Aベストアンサー

コントロールツールボックスのチェックボックスならプロパティにFontがあるので変更できます。

フォームのチェックボックスやオプションボタンのフォントサイズは変更できなかったと思いますが、変更したように見せかけはできます。使用上、特に問題はないと思います。(だからダイアログにフォントがない?)

チェックボックスの位置によって、
(1)チェックボックス(四角)がセルの中央にある場合
 チェックボックスのテキストを必要な長さの空白にしてしまいます。
 チェックボックス(四角)の右横のセルにチェックボックスの説明のテキストを入れます。
 セルの書式設定でフォントが変更できます。
(2)チェックボックス(四角)をセルの境目などにセットする場合
 チェックボックスのテキストを必要な長さの空白にしてしまいます。
 図形描写からテキストボックスを選択し、チェックボックスの説明のテキストを入れます。
 テキストボックスは『線なし』にしておきます。2行で表示したりもできます。
 チェックボックスとテキストボックスを重ねて、見た目を調節します。
 テキストボックスを選択し、右クリック→順序→最背面へ移動 とします。

ご参考に。

コントロールツールボックスのチェックボックスならプロパティにFontがあるので変更できます。

フォームのチェックボックスやオプションボタンのフォントサイズは変更できなかったと思いますが、変更したように見せかけはできます。使用上、特に問題はないと思います。(だからダイアログにフォントがない?)

チェックボックスの位置によって、
(1)チェックボックス(四角)がセルの中央にある場合
 チェックボックスのテキストを必要な長さの空白にしてしまいます。
 チェックボックス(四角)の右横のセ...続きを読む

QVBAでシートからコンボボックスにデータを設定する方法

VBAにてフォーム起動時にシート内に設定した
値をコンボボックスに取り込みたいのですが・・。
たとえばA列に連続で入力されているデータを
取り込むなど・・。
設定データ数は動的に変化します。

Aベストアンサー

もうほとんど同じですが…

Private Sub UserForm_Initialize()
Dim i As Integer

 ComboBox1.Clear
 For i = 1 To Worksheets("sheet1").Cells(Rows.Count, 1).End(xlUp).Row
  ComboBox1.AddItem Worksheets("sheet1").Cells(i, 1).Value
 Next
End Sub

QエクセルVBA ユーザーフォームのTextBoxを日付にしたい

いつもいつも 皆様からのお返事を心待ちにしておりますNannyです。

VBAのユーザーフォームでTextBoxを日付専用入力にしたいのです。

で、入力方法が 20050219 というような形で入力して、2005/02/19という形か、平成17年2月19日というような形に持って行って、セルに貼り付けしたいのです。

出来なさそうな予感満載なのですが、皆様お返事の程宜しくお願い致します。
(出来ないのであればあきらめられるので、出来るかどうかのお返事も期待しております。

宜しくお願い致します。

Aベストアンサー

下記はTextBox1に20050219としCommandButton1をクリックするとシート1のA1に2005/2/19と出力します。
Private Sub CommandButton1_Click()
Worksheets(1).Range("A1").Value = Format(TextBox1.Text, "0000""/""00""/""00")

End Sub

Qエクセルシートをまとめて印刷(ボタンを使い)

Excel(エクセル)印刷について質問です。
シートをまとめて印刷する場合に
シフトを押しながらシートのタブを
クリックすれば印刷出来るのは、
解りますが、毎日同じ入力を行うので
下記のような事が出来ないかと思います。

Sheet1にマクロで?ボタンを造り
そのボタンを押すだけで、
Sheet2~4までをまとめて印刷したい。

宜しくお願い致します。

Aベストアンサー

sheet1の適当位置に、「図形の描画」のツールバーの「テキストボックス」
でテキストボックスを作成、ボックス内は連続印刷など適当な文字を入れ、
その後、そのテキストボックスを選択して右クリック⇒マクロの登録を
クリックして、マクロ作成画面で、新規作成を選択
Sub テキスト1_Click()と
End Sub の間に、下記を挿入すればOKかと。
コピー枚数はcopies:=枚数で
なお、テキストボックスでなく、図形の描画で丸や四角を作って色を付け
たものでもOKです。(マクロ名がテキストから楕円や四角に変わるだけ)
sheet名を変えているときは、下記のsheet名に相当する部分を
変更ください。

Sheets("Sheet1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("Sheet2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("Sheet3").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

sheet1の適当位置に、「図形の描画」のツールバーの「テキストボックス」
でテキストボックスを作成、ボックス内は連続印刷など適当な文字を入れ、
その後、そのテキストボックスを選択して右クリック⇒マクロの登録を
クリックして、マクロ作成画面で、新規作成を選択
Sub テキスト1_Click()と
End Sub の間に、下記を挿入すればOKかと。
コピー枚数はcopies:=枚数で
なお、テキストボックスでなく、図形の描画で丸や四角を作って色を付け
たものでもOKです。(マクロ名がテキストから楕円や四角に変わる...続きを読む

QExcelで連続印刷をするマクロ

Excelでデータベース的な使い方をしています。
「データ」シートにたくさんのデータがあり,
「レポート」シートのA1セルに入力した数字に該当するデータをVLOOKUP関数で読み込んでいます。
それを連続印刷するときに,
現在は
For n = 1 To 135
Range("A1").Select
ActiveCell.FormulaR1C1 = n
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Next n
End Sub
というマクロで実行させています。
(ちなみにマクロの知識がほとんどなく
「新しいマクロの記録」を利用して作ったため,ほとんど意味は分かっていませんが・・・)

このマクロでも印刷できるのですが,
このままだとデータが 1 ~ 135に固定されてしまいますよね。
実際はデータ数が変動するので,そのたびにマクロの数字を変えています。

そこで考えているのが
新たに「設定」シートを作成して
そこのiとjのセルに数字を入力することで,自動的に
マクロが n = (iに入力した数字) To (jに入力した数字)
となるようにした方が便利だと考えています。

あまりマクロについての知識がないくせに
ほんのちょっとの工夫でできるような気がして・・・
あれこれ試してみたけどできません。
できれば今のマクロを根本的に変えるのではなくて
少しの変更とか追加とかでできるようにしたいのですが可能でしょうか?

ぜひ 教えてください。よろしくお願いします。

Excelでデータベース的な使い方をしています。
「データ」シートにたくさんのデータがあり,
「レポート」シートのA1セルに入力した数字に該当するデータをVLOOKUP関数で読み込んでいます。
それを連続印刷するときに,
現在は
For n = 1 To 135
Range("A1").Select
ActiveCell.FormulaR1C1 = n
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Next n
End Sub
というマクロで実行させています。
(ちなみにマクロの知識がほとんどなく
「新しいマクロの記録...続きを読む

Aベストアンサー

>そこのiとjのセルに数字を入力することで,自動的に
>マクロが n = (iに入力した数字) To (jに入力した数字)
セルが、I1とJ1セルのことだとして
For n = 1 To 135

For n= Sheets("設定").Range("I1").Value To Sheets("設定").Range("J1").Value
といった風に記述できます。
>実際はデータ数が変動する
J1セルにはCOUNTA関数などを使用してデータの数を表示させておくと便利かもしれませんね。

QExcelVBAのユーザーフォームの中に線を引きたい

ユーザーフォームの中に線を引きたいのですが、ツールボックスの中のコントロールには、それらしきものがありません。
ワークシートのように自由に線を引くことは、ユーザーフォームではできないのでしょうか。
できるとしたら、どのようにすればよいのでしょうか。
よろしくお願いします。

Aベストアンサー

水平線であれば、フレームを挿入、文字列なし、高さゼロにしてごまかせますが…。

それ以外の方法ですと、別途ペイントなどで線を引いた画像を作成し、ユーザーフォームの背景に設定するとか。
Accessならば、フォームに線などが引けた気がします。

QEXCELのユーザーフォームで入力規制をしたい

EXCELのユーザーフォームで、テキストボックスに、例えば「日付のみ入力できる」のような入力規制をしたいのですが、プロパティのどこかでできるのでしょうか?

Aベストアンサー

ユーザーフォームのことですよね。「入力規則」なんかのレスがありましたが??

まぁ、VBAで処理することになると思いますよ。
例えば、こんな感じです。

Private Sub TextBox1_AfterUpdate()
  If Not IsDate(TextBox1.Text) Then
    MsgBox "「日付」と認識出来ません。", vbCritical
    SendKeys "+{TAB}"
  End If
End Sub


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング