人に聞けない痔の悩み、これでスッキリ >>

 VBA初心者です。(エクセル2003を使用)標題のとおりなのですが,画面いっぱいを占めるフォームの手前に,画面の7割ほどを占めるシートを表示しておいて,両方の画面を同時に使えるようにしたいのですが上手くいきません。
 フォームの手前にシートを表示することはできないのでしょうか?良い方法があれば教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

こんにちは。

KenKen_SP です。

Microsoft Office Spreadsheet x.x コントロールを使うとか。

http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub0 …
    • good
    • 0
この回答へのお礼

 ありがとうございます(涙)。目からウロコでした。日曜日も,本屋でいろいろ調べたのですが,見つけることが出来ず,「無理なのかな」と思っていたところです。目の前が急に開けた感じでした。
 あと,もう一点だけ疑問なのですが,僕が考えていたことは,『シート上に作成した,「フリーフォームで作成したオートシェイプ」を操作したい』ということなのですが,スプレッドシート上にオートシェイプを貼り付けることは可能なのでしょうか?

お礼日時:2006/08/22 00:04

> スプレッドシート上にオートシェイプを貼り付けることは可能なのでしょうか?



不可能だと思います。Spreadsheet コントロール自体が Excel のワークシート
を完全にシミュレートしたものではありません。つまり、、どちらかと言えば、
できないことの方が多いです。「よく似ているけど、別物」と位置づけた方が
良いでしょう。

Spreadsheet コントロールの上に Image コントロールを重ねて擬似的に表現で
きないか試してみましたが、Zオーダー(コントロールの上下関係)を設定できず
失敗に終わりました。

Spreadsheet コントロール上でなければ、シェープを画像に変換することで、
Image コントロールに画像として読み込むことは可能です。
    • good
    • 0
この回答へのお礼

 何度もご回答ありがとうございました。
いただいたヒントをもとに,試行錯誤しながら進みます。

お礼日時:2006/08/22 21:18

現在はユーザーフォームが表示されているとユーザーフォームしか操作できなくて、シートを操作できない。


ユーザーフォームが表示されていてもシートを操作できるようにしたい。
という技術的な部分については、ユーザーフォームのモーダル、モードレス、について調べてみてください。幸せになれます。

フォームの位置とサイズ、シートの位置とサイズを指定するのはできますよね?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
僕の質問の仕方が良くなかったのですが,「シートがあるウィンドウ」の上に「フォーム」が重なっているのが通常ですが,全画面サイズの「フォーム」の上に「シートのウインドウ」を小さくして表示したいのです。
 何度も申し訳ありませんが,よろしければ教えてください。

お礼日時:2006/08/20 21:03

このQ&Aに関連する人気のQ&A

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

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

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

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

Qエクセルで数字の頭に0を追加する方法はありますか?

エクセルのVLOOKUP関数を使って検索をしようと思いますが、
検索する番号が一つが6桁の番号で表示されており、もう片方が7桁の番号で表示されています。
つまり、6桁は頭に0が付いていなくて、7桁には頭に0が付いています。
【例】 6桁=123456、7桁=0987654

ですから同じ表示にしたいのですが、出来れば6桁の頭に0を付けたいのです。
【例】 6桁=123456 → 7桁=0123456

どうすれば、変換できるかよい方法がありましたら教えて下さい。よろしくお願いいたします。

なお、対象セルは3千個程あるので、とてもじゃないけど一個づつは出来ません。
また、当方素人なので出来れば判り易い方法でお願い致します。

Aベストアンサー

範囲選択をして右クリック
セルの書式設定
 ↓
表紙形式
 ↓
ユーザー定義
 ↓
種類のところに 0000000
と記入すれば頭に0が付きます。

Q指定のWORKBOOKを前面表示する方法(エクセル:VBA)

いつもお世話になっております。
エクセルにて処理が終了した時点で、VBAを使い自動的にメールを送るマクロを組みました。しかし、ユーザーからのリクエストにより、自動送信する前にメール内容を確認したいとのことで、一度このメール内容でOKかどうか聞いてから、送信するように書き換えました。そのMsgBoxは当然エクセル上に現れるのですが、特にシングルディスプレイユーザーの場合、送信用のメールが前面に出てしまい、エクセル上に表示されたMsgBoxに気が付かない人もいますので、送信用メールが作成されたら、エクセルを前面に出してMsgBoxの指示に従わせたいのですが、どう書けばいいのか分かりません。とりあえず、私がトライしてみた文字ールは下記のとおりですが、エクセルは前面には出ません(ただし、エクセルプログラム全体が点滅?しますが)。
~前略~

With myMail
.To = "abc@xxxxx.com"
.Cc = "123@xxxxx.com"
.Subject = Filename '指定済みです
.Body = strBody '指定済みです
.display '.sendの代わりにいったんここで表示させました
End With

Windows("XYZ.xls").Activate 'このワークブックで作業をしてます。全面にはでてきません。

mymsg = MsgBox("このメール内容で送信してもよろしいですか?"~中略~,vbYesNo + vbQuestion, "送信確認")
If mymsg = 6 Then
myMail.send

~後略~

いつもお世話になっております。
エクセルにて処理が終了した時点で、VBAを使い自動的にメールを送るマクロを組みました。しかし、ユーザーからのリクエストにより、自動送信する前にメール内容を確認したいとのことで、一度このメール内容でOKかどうか聞いてから、送信するように書き換えました。そのMsgBoxは当然エクセル上に現れるのですが、特にシングルディスプレイユーザーの場合、送信用のメールが前面に出てしまい、エクセル上に表示されたMsgBoxに気が付かない人もいますので、送信用メールが作成された...続きを読む

Aベストアンサー

Windows("XYZ.xls").Activate
のところに
VBA.AppActivate Excel.Application.Caption
を追加してみてください。

Qformで特定のinputを送信しないようにしたい

複数のinputを送信時に値をフォーマットに従ってまとめて送信するとき
そのもととなった複数のinputは送信しないようにしたいです
(郵便番号など入力欄を二つにわけるが送信時は一つにまとめるなど)

nameを付けないという方法も考えましたが
radioを含む場合に不都合なのでこの方法はとりたくありません

また送信時にinputを削除するという方法も
ajaxで元のページにとどまることも考えうるので
この方法もとりたくありません

理想はinputに特定の属性値を与えると
form送信時に送信しないようになる
とかだったのですがその方法は見つけられませんでした

クライアントサイドでの処理が難しそうなら
サーバーサイドでの処理にしますが
できれば避けたいと思っています

よろしくお願いします

Aベストアンサー

できないです。
そもそもCGI側に渡すための物ですから
(郵便番号など入力欄を二つにわけるが送信時は一つにまとめるなど)
入力ページから送信された物は一旦CGI側で、
$postcode="120-1135";
とかになって、
<input type="hiidden" name="zip-code" value="120-1135">
・・・・・
<th>郵便番号</th><td class="zip-code">120-1135</td>
とtableか、
<input type="text" name="zip-a" value="120" readonly>-<input type="text" name="zip-b" value="1135" readonly>
とかの再フォーになっているはず。
 <input type="text" name="zip-a" value="120">-<input type="text" name="zip-b" value="1135">
 で修正を受け付けても良い。

>クライアントサイドでの処理が難しそうならサーバーサイドでの処理にしますができれば避けたいと思っています
 これ、根本的に間違っています。
 javascriptなどはユーザー側に制約されるので、可能な限り楽な方法--CGI側で処理すべきです。そのほうが楽です。

できないです。
そもそもCGI側に渡すための物ですから
(郵便番号など入力欄を二つにわけるが送信時は一つにまとめるなど)
入力ページから送信された物は一旦CGI側で、
$postcode="120-1135";
とかになって、
<input type="hiidden" name="zip-code" value="120-1135">
・・・・・
<th>郵便番号</th><td class="zip-code">120-1135</td>
とtableか、
<input type="text" name="zip-a" value="120" readonly>-<input type="text" name="zip-b" value="1135" readonly>
とかの再フォーになっているはず。
 <input t...続きを読む


人気Q&Aランキング