現在、ワークシートの内容を見やすくするためにユーザーフォームを使用し表示させています。印刷は、ユーザーフォームにコマンドボタンを配置し、ワークシートを印刷しています。
せっかくユーザーフォームで見やすいレイアウトにしているので、表示させた内容をユーザーフォームごと印刷できればと考えています。
画面のハードコピーとかではなくて、コマンドボタンをクリックすることで印刷したいのですが、どなたか教えてください。

A 回答 (2件)

VBなら、printerオブジェクトというのがあるので、設定可能ですが、


Excel97のVBAでは標準で使用できないようです。

Debug.Print Printer.Count
とコーディングして、ちゃんと実行可能できたら希望はありますが、
恐らくは、実行できないと思います。

また、なにか解りましたら、回答します。
    • good
    • 0
この回答へのお礼

お手数をかけてすみません。
No.1の回答で取りあえず目的は達成しています。もし新たな情報があれば、急ぎませんので宜しくお願いします。

お礼日時:2001/08/09 08:44

PrintFormメソッドでOKです。



コーディング例)
Private Sub UserForm_Click()
  'フォームの印刷
  Me.PrintForm
End Sub

※Meは、フォームのオブジェクトです。

この回答への補足

無事印刷できました。答えて下さって本当に有り難うございました。

できましたら、印刷時に用紙サイズ、縦・横、余白などの設定も行いたいのですが...  初歩的な質問ばかりですみませんが宜しくお願いいたします。

補足日時:2001/08/08 18:34
    • good
    • 0

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

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

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

Qcadam グループ・ユーザーの追加

MACRO CADAM Helix V5R2
グループ・ユーザーの追加方法を忘れてしまいました。
ずいぶん前に行った事があるのですが新客の為追加の必要が発生。
よろしくお願いします。 

Aベストアンサー

Cadamインストールドライブの\mcadam\PRVDEF.SYSをテキスト等で編集し、新しい『group,user』を定義します。(もともとの行をcopyし、任意の『group,user』に書き換えるとかんたんです。)

コマンドラインで\mchelix\hdd\mcprvgen *** ??? を入力し実行します。
(***はマスター・ユーザーID、???はマスター・ユーザーID のパスワードです。デフォルトではどちらも『cadam』です。

Cadamを再起動すれば新しい『group,user』ができているはずです。

詳しくは、
管理・運用解説書
 第1章 セキュリティー管理
 1.1 プリビリッジ

をご覧ください。cadamと一緒にW/Sにセットアップされてるはずです。

Qエクセル:ユーザーフォームにコマンドボタンの設置

エクセルVBAで、ユーザーフォームを利用していますが、そのユーザーフォーム内にエクセルに最初から備わっているツールバーのコマンドボタンを貼り付けることは出来るのでしょうか?

というのも、図形をマウスで範囲選択して、選択された図形をDELETEで全部削除するマクロを組もうと思っているのです。
が、図形描画のツールバーに範囲選択をすると、その範囲内にある図形を全部選択できるコマンドボタンがあったので、その機能をそのままユーザーフォームに設置できればOKと思ったのですが・・・。
それと同様のことが出来るマクロを組めれば問題なのかもしれませんが、私にはちょっと無理そうです。
よろしくお願いします。

Aベストアンサー

こんばんは。

こんな風にしたらどうですか?

オブジェクトの選択ボタンのIDは、182 ですから、FindControl で探して、設定し、
凹んだ状態を、○で表示。そのまま、オートシェイプ類を選択し、コントロールキーを押しながら、コマンドボタンを押すと、オートシェイプ類を削除。

UserForm が小さいほうがやりやすいようですね。なお、UserForm の プロパティの ShowModal は、False ですから、忘れないようにしてください。


Private Sub CommandButton1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  With Application.CommandBars.FindControl(, 182)
   If Shift = 0 Then
     If .State = msoButtonUp Then
      .Execute
      Me.CommandButton1.Caption = "○" '選択可
     Else
      .Execute
      Me.CommandButton1.Caption = "●" '選択不可
     End If
   ElseIf Shift = 2 Then 'コントロールを押しながら
     If TypeName(Selection) = "DrawingObjects" Then
      Selection.Delete
     End If
   End If
  End With
End Sub

こんばんは。

こんな風にしたらどうですか?

オブジェクトの選択ボタンのIDは、182 ですから、FindControl で探して、設定し、
凹んだ状態を、○で表示。そのまま、オートシェイプ類を選択し、コントロールキーを押しながら、コマンドボタンを押すと、オートシェイプ類を削除。

UserForm が小さいほうがやりやすいようですね。なお、UserForm の プロパティの ShowModal は、False ですから、忘れないようにしてください。


Private Sub CommandButton1_MouseDown(ByVal Button As Integer, ByVal S...続きを読む

QC#でローカルユーザーやグループの設定

C#でWindows PC上のローカルユーザーを追加/削除/設定する、できるだけ簡単な方法を教えてください。
具体的には

 ユーザー/グループの追加
 ユーザー/グループの削除
 ユーザーをグループに追加/グループから削除
 ユーザー/グループの一覧取得
 パスワードの設定や変更
 その他上記に関連したことならなんでも

です。
環境はWindows8.1Pro/VisualStudio2013Express For Desktopです。
よろしくお願いします。

Aベストアンサー

ユーザアカウントなどに関しては、ディレクトリサービスを利用するのが良いと思います。
http://support.microsoft.com/kb/306273/ja

もっと簡単に…という事であれば、少し手抜きですが、Process.Startなどでnetコマンドを直接呼び出す方法でも実現できますよ。netコマンドの引数が分からなければ、解説ページがたくさんあるので調べてみてください。
http://www.atmarkit.co.jp/fwin2k/win2ktips/258netcommand/netcommand.html

QEXCEL VBAのユーザーフォームのコマンドボタンでBSキーと同様の役割を持たせる方法について

すいません、EXCEL VBAで教えていただきたいことがあります。
EXCEL VBAでユーザーフォームを作る。
フォーム内にはTextBox1とCommandButton1を設置。
TextBox1に書き込んだ文字をドラッグ
→CommandButton1を押す
→ドラッグした文字を消去
という機能をコマンドボタンに持たせたいのですが
可能でしょうか。

下記のコードを作ってみたのですが、やはりこれだと一文字づつしか消せません。
よろしくお願いします。

Private Sub CommandButton1_Click()
Dim i As Integer
With Me.TextBox1
i = .SelStart
If i > 0 Then
.Text = Left(.Text, i - 1) & Mid(.Text, i + 1)
.SelStart = i - 1
End If
End With
TextBox1.SetFocus
End Sub

すいません、EXCEL VBAで教えていただきたいことがあります。
EXCEL VBAでユーザーフォームを作る。
フォーム内にはTextBox1とCommandButton1を設置。
TextBox1に書き込んだ文字をドラッグ
→CommandButton1を押す
→ドラッグした文字を消去
という機能をコマンドボタンに持たせたいのですが
可能でしょうか。

下記のコードを作ってみたのですが、やはりこれだと一文字づつしか消せません。
よろしくお願いします。

Private Sub CommandButton1_Click()
Dim i As Integer
With Me.TextBox1...続きを読む

Aベストアンサー

こんばんは。

> BSキーと同様の役割を持たせる方法

そのままんま、SendKeys でキー送信してみては? キー送信時の
フォーカスは事前に設定しておきます。

Private Sub CommandButton1_Click()
  TextBox1.SetFocus
  SendKeys "{BS}"
End Sub

Qグループに作成したグループを追加するには?

例えば、新規にGroupAとGroupBというグループを作成して、次にGroupCというグループを作成して、GroupCにGroupAとGroupBを含めることは出来ないのでしょうか?

現在では、GroupAとGroupBに設定しているユーザーを全てGroupCにも設定していますが、例えばGroupAにユーザーを追加したらGroupCにも同じようにユーザーを追加しないといけないため、管理が大変です。

何か良い方法はありませんか?

Aベストアンサー

ドメインの機能レベルはネイティブモードですか?
ドメインの機能レベルがネイティブの場合は、グループのネスト(グループにほかのグループを含めること)が利用できます。

参考URL:http://www.microsoft.com/technet/prodtechnol/windowsserver2003/ja/library/ServerHelp/3fbe961d-1124-4a56-9d95-4be9e0dc599

Qユーザーフォームのコマンドボタンをマクロで操作したい

Excel97でユーザーフォームを出しながらセルに入力できるようにしたいので、
http://www.ap.wakwak.com/~miko/Excel_Note/11-01_userform.htm#11-01-13
このサイトに書かれているように、ユーザーフォームにコマンドボタンを作成して、
ボタンのコードを
 Private Sub CommandButton1_Click()
  Application.GetOpenFilename
 End Sub
とし、「ファイルを開く」ダイアログを表示させてキャンセルするようにしたのですが、
この「コマンドボタンをクリックしてファイルを開くダイアログをキャンセルする」操作は
自動化できるのでしょうか?
パソコンに慣れていない人用に作っているものですので、できるだけ使う人の操作を
少なくしたいのです。

ブックを開いた時にユーザーフォームを出すところまではできたのですが、
ユーザーフォームのコマンドボタンを自動的にクリックしてダイアログを
キャンセルする方法がわかりません。
ご存知の方、どうぞよろしくご教授お願いいたします。

使用しているのは、
OS:Windows98SE
ソフト:Excel97
です。

Excel97でユーザーフォームを出しながらセルに入力できるようにしたいので、
http://www.ap.wakwak.com/~miko/Excel_Note/11-01_userform.htm#11-01-13
このサイトに書かれているように、ユーザーフォームにコマンドボタンを作成して、
ボタンのコードを
 Private Sub CommandButton1_Click()
  Application.GetOpenFilename
 End Sub
とし、「ファイルを開く」ダイアログを表示させてキャンセルするようにしたのですが、
この「コマンドボタンをクリックしてファイルを開くダイアログをキャンセルす...続きを読む

Aベストアンサー

>それはバグを使って解消できるのだそうです。

「モードレス」のフォームを使いたいのでしょうか。

しかしこういう裏ワザ的やり方はあまり感心しませんね。
「たまたま動いている」とでもいえばいいのでしょうか。
Excel97では「モーダル」になるのが仕様です。
その仕様の範囲内で制作するのがまっとうなやり方だと思いますよ。

モードレスフォームを使わなければ処理できないという、
「のっぴきならない事情」でもあるのなら仕方ないですが、
たぶん、こんな手法を使わなくても解決できる他の方法があるはずです。

たとえばセルの値を変更したいのなら、フォームにテキストボックスをつくればすむ話です。
たいていのことはVBAから操作できます。


ここはVBAの達人の方々が揃っていますから、
どういう機能を実現したいのかを、具体的に書いていただければ、
こんな裏ワザ的手法より、はるかにいい方法が見つかるかもしれませんよ。


さて、質問の直接の回答ですが、
「GetOpenFilename」で開いたダイアログをコードから閉じる方法は、ないと思います。

>それはバグを使って解消できるのだそうです。

「モードレス」のフォームを使いたいのでしょうか。

しかしこういう裏ワザ的やり方はあまり感心しませんね。
「たまたま動いている」とでもいえばいいのでしょうか。
Excel97では「モーダル」になるのが仕様です。
その仕様の範囲内で制作するのがまっとうなやり方だと思いますよ。

モードレスフォームを使わなければ処理できないという、
「のっぴきならない事情」でもあるのなら仕方ないですが、
たぶん、こんな手法を使わなくても解決できる他の...続きを読む

QWindows 8にADユーザーを追加する方法

Windows 8 pro にADユーザーを追加する方法を教えて下さい。


Windows XPの場合、AD上のアドミン権限のあるユーザーでログインし、
ユーザーの追加で、詳細を検索すると、同じドメイン上のユーザーが全部表示されるので、
選んで追加し、
power users や users や administratorsのグループを充ててやれば良いのですが、

この手順がWindows 8 pro では全く分かりません。
ADの設定は終わっており、(test.localとします)
AD上のアドミン権限のあるユーザー(test\user1とします)でログインするところまでは出来ています。
このPC上で別のユーザー(test\user2とします)にpower users権限を与えたいです。


よろしくお願いします。

Aベストアンサー

Windows 8のアカウントは3つ。
1 Microsoftアカウント
「設定」チャーム「PC設定の変更」「ユーザー」管理ツールを選択アカウント画像の設定「ユーザー」
参考URLの画面
(1)ユーザー
(2)現在サインインしているユーザー名とアカウント(ローカルアカウント)
(3)Microsoftアカウントへ切り替え
(8)新しいユーザーを追加。(管理者権限のあるユーザーでサインインすると表示)
2 ローカル・アカウント

3 ドメイン・アカウント

ユーザーを新たに追加したい場合、管理者権限のあるユーザーでサインイン(Windows 8ではログインとは言わない)し「PC設定」「ユーザー」設定「その他のユーザー」「ユーザーの追加」
追加したいユーザー名を入力(デフォルトではMicrosoftアカウントを追加するようになっている)
「Microsoftアカウントを使わずにサインインする」(ローカルアカウントを作成する場合クリック)→「ローカルアカウント」選択

「PC設定」の「ユーザー」では、ユーザーアカウントの作成はできるが、管理者権限がない一般ユーザー権限しか持たない「標準アカウント」(Administratorsグループではなく、Usersグループ)
管理者権限のあるアカウントに変更するには、「コントロールパネル」「ユーザーアカウント」ツールを起動し実行。
「Windows」キー+「X」キー「コントロールパネル」「ユーザーアカウントとファミリーセーフティ」「ユーザーアカウント」
管理者権限のあるアカウントにするには、「別のアカウントの管理」クリックし権限を変更したいアカウントを選択「アカウントの種類の変更」クリックして、「管理者」と「標準」を切り替える。

ドメインに参加している場合のサインインは、ドメイン名やユーザー名をきちんと全部入力する。
詳細は参考URL

参考URL:http://www.atmarkit.co.jp/ait/articles/1210/18/news075.html

Windows 8のアカウントは3つ。
1 Microsoftアカウント
「設定」チャーム「PC設定の変更」「ユーザー」管理ツールを選択アカウント画像の設定「ユーザー」
参考URLの画面
(1)ユーザー
(2)現在サインインしているユーザー名とアカウント(ローカルアカウント)
(3)Microsoftアカウントへ切り替え
(8)新しいユーザーを追加。(管理者権限のあるユーザーでサインインすると表示)
2 ローカル・アカウント

3 ドメイン・アカウント

ユーザーを新たに追加したい場合、管理者権限のあるユーザーでサインイン...続きを読む

Qエクセルのユーザーフォームのマクロ内でコマンドボタンを作成する

エクセルのユーザーフォームで、読み込んだときにコマンドボタンを作成する方法を教えてほしいです。

通常は、先にユーザーフォーム内でボタンを作成して、キャプション等を設定すると思うのですが、ボタンの数が決まっていないので、フォームを読み込むたびにボタンの数を変えたいと思っています。

似たようなことでは、先にボタンを作っておいて可視、不可視にしようかとも思ったのですが、あまりそれはやりたくないです。
よろしくお願いします。

環境は、XPでエクセルは2003です。

Aベストアンサー

追加したボタンをクリックしたときに動くモジュールはどうするつもりですか? 予め追加するボタンの分だけ
 Private Sub CommandButton*_Click()
 End Sub
を書いておいても、うまくいくかどうか? …です。もう試されましたか?

追加したボタンをクリックしたときに処理を動かすためには、他の回答者さまも述べているように、クラスモジュールを使う必要があるように思います。あまり得手ではないのですが試しにサンプルを書いてみました。

まずユーザーフォーム右下にコマンドボタン1つを配置します。ユーザフォームはボタンを追加するので、少し大きめに作っておくとよいです。このコマンドボタンは「ボタン追加」の意味があります

そして以下をユーザーフォームモジュールシートとユーザフォームシートにそれぞれ貼り付けます。後は
 Userform1.Show
でユーザフォームを呼び出して、ボタンをクリックしてみてください
(Office2003で確認済みです)

ユーザーフォームモジュール
Dim myCb() As Class1
Private Sub CommandButton1_Click()
Dim ctrl As Control
Dim cnt As Integer
 For Each ctrl In UserForm1.Controls
  If TypeName(ctrl) = "CommandButton" Then
   cnt = cnt + 1
  End If
 Next
 With Me.Controls.Add("Forms.CommandButton.1")
  .Top = cnt * 40
  .Left = 20
  .Width = 80
  .Caption = .Name
 End With

Call UserForm_Initialize
End Sub

Private Sub UserForm_Initialize()
Dim cnt, i As Integer
For Each ctrl In UserForm1.Controls
If TypeName(ctrl) = "CommandButton" Then
cnt = cnt + 1
End If
Next
ReDim myCb(1 To cnt)
For i = 1 To cnt
Set myCb(i) = New Class1
Set myCb(i).opt = Me.Controls("CommandButton" & CStr(i))
Next i
End Sub

クラスモジュール(モジュール名:Class1)に貼り付け
Public WithEvents myCb As MSForms.CommandButton
Public Property Set opt(setcb As MSForms.CommandButton)
 Set myCb = setcb
End Property

Public Property Get opt() As MSForms.CommandButton

End Property

Sub myCb_Click()
 MsgBox myCb.Name & " がクリックされました"
End Sub

これを見て「わからん」なら可視、不可視で実現する方をお薦めしますが…

追加したボタンをクリックしたときに動くモジュールはどうするつもりですか? 予め追加するボタンの分だけ
 Private Sub CommandButton*_Click()
 End Sub
を書いておいても、うまくいくかどうか? …です。もう試されましたか?

追加したボタンをクリックしたときに処理を動かすためには、他の回答者さまも述べているように、クラスモジュールを使う必要があるように思います。あまり得手ではないのですが試しにサンプルを書いてみました。

まずユーザーフォーム右下にコマンドボタン1つを配置しま...続きを読む

Qスケジュールにジョブを追加するときのユーザーの権限は

VB6.0SP5 WIN2000 で開発していてAPIで
NetScheduleJobAddを使用してスケジュールにジョブを
追加していますが、
ユーザーの権限がadministratorsグループだと
追加できますが他のグループだと追加できません。
仕様がそうなのでしょうか?
又、追加できるようならサンプルなどないでしょうか?

Aベストアンサー

ヘルプを読みましょう。

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netmgmt/netmgmt/netschedulejobadd.asp


Only members of the Administrators local group can successfully execute the NetScheduleJobAdd function on a remote server.

だそうです。

QExcelVBA:ワークシートに付けたコマンドボタンから、セル全体をコピーするコード

ExcelVBAでワークシートに付けたコマンドボタンを押すと、ワークシートを指定し、コピーするプログラムを作りたいのですが、「実行時エラー'1004':RangeクラスのSelectメソッドが失敗しました。」というようなエラーが出て動きません。
プログラムは以下の通りです。

Private Sub CommandButton1_Click()

Sheets("Sheet1").Select
Cells.Select
Selection.Copy

End Sub

どのようにすればよいでしょうか?
回答よろしくお願いします。

Aベストアンサー

どんな目的でこのマクロを実行するのか分かりませんが、以下にすればエラーにはなりません

Private Sub CommandButton1_Click()
 Sheets("Sheet1").Cells.Copy
End Sub

でもシート全体をコピーするのではなく必要な範囲をコピーする方がよいようにも思いますが…


人気Q&Aランキング

おすすめ情報