Toolbarを作った場合、全体がフラットでボタン一つ一つが表示されず
マウスが上にきたら上にあがるもの(IEのようなもの)
を作るにはどうしたら良いのでしょうか?

実はツールバーって言う名前じゃないのかも。。。

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

A 回答 (2件)

こんにちは。

maruru01です。

VBにはToolbarコントロールという、よくあるツールバーと同じデザインが作れるコントロールが用意されています。
このコントロールはコンポーネントの追加で使えるようになります。
メニューの[プロジェクト]→[コンポーネント]でコンポーネントダイアログを開きます。
[コントロール]タブをクリックし、コンポーネントのリストから
「Microsoft Windows Common Controls 6.0」
(当てられているSPで、バージョンは異なる)
をチェックしてOKします。
これで、ツールボックスにいくつかのコントロールと共にToolbarコントロールが現れたと思います。
あとは、プロパティページでボタンを追加し、全体のStyleプロパティで、
「1-tbrFlat」
を選択すればIEのようなツールバーになります。
また、各ボタンのスタイルで、IEの[更新]や[中止]ボタンのようにクリックしたらボタンが窪んでからすぐに元に戻るタイプと、[検索]や[お気に入り]ボタンのように窪んだままでもう一度クリックすると元に戻るタイプを選択出来ます。
その他にもいろいろと設定出来ます。
なお、コーディングの詳細は本やネット上で探して下さい。
とりあえず、本を紹介しておきます。
では。

「新 Visual Basic 入門 シニア編」
    著:林晴比古、出版:SOFTBANK Publishing
    • good
    • 0
この回答へのお礼

どうやらCommon Controls 6.0のバージョンが低かったためStyleプロパティ
にフラットがなかったみたいです。バージョンをあげたところ無事に
できるようになりました。いろいろな設定ができるのですねー。勉強に
なりました。丁寧なご回答ありがとうございました。

お礼日時:2002/04/09 23:28

「フラットツールバー」のことかと思います。


フローティングツールバーとかこの辺は、VBだと面倒のようです。
私も以前やろうと思って時間がないので断念したのですが、調べた中の(英語の)サイトですが、参考までにURLを乗せておきます。
検索すれば、日本のサイトも見つかるかもしれません。

↓コントロール&サンプルコード
http://vbaccelerator.com/codelib/comctl/retbar.htm

これを利用するためには、↓要SSubTmr.DLLコンポーネント
http://vbaccelerator.com/codelib/ssubtmr/ssubtmr …
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
“フラットツールバー”というのですね。
ホームページ参考にさせていただきます。

お礼日時:2002/04/09 23:24

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

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

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

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

Q条件付き書式で行全体の書式を変えたい。 こんにちは。VBA初心者です。 今、営業リストを作っています

条件付き書式で行全体の書式を変えたい。
こんにちは。VBA初心者です。
今、営業リストを作っていますが、条件付き書式で困っています。

A列はリストの通し番号です。B列に現時点の状況があり、C列以降は内容が記載されています。

B列の値を変えたら、行全体の文字色が変わるプログラムを作りたいと思っています。

B列はリストから選び、営業中(規定)、見積提出、受注、不調にしたときに色を変えたいです。
番号で管理しているため、どの行が変わるかはわからない状態です。

どなたか、お知恵を拝借したいと思います。
よろしくお願いいたします。

Aベストアンサー

こんなのはいかがですか?
---------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
Select Case Target.Value
Case "営業中(規定)"
Rows(Target.Row).Font.ColorIndex = 3
Case "見積提出"
Rows(Target.Row).Font.ColorIndex = 4
Case "受注"
Rows(Target.Row).Font.ColorIndex = 5
Case "不調"
Rows(Target.Row).Font.ColorIndex = 6
Case Else
Rows(Target.Row).Font.ColorIndex = xlAutomatic
End Select
End Sub
---------------------------------------------------------------
※ 対象のシートモジュールに入力して下さい。
※「ColorIndex」の値はマクロの記録などで調べて変更してください。
とりあえず現状では以下にしてあります。
・営業中(規定)「3」赤
・見積提出「4」緑
・受注「5」青
・不調「6」黄
・その他「xlAutomatic」自動

こんなのはいかがですか?
---------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
Select Case Target.Value
Case "営業中(規定)"
Rows(Target.Row).Font.ColorIndex = 3
Case "見積提出"
Rows(Target.Row).Font.ColorIndex = 4
Case "受注"
Rows(Target.Row).Font.ColorIndex = 5
Case "不調"
Rows(Target.Row).Font.ColorIndex = 6
Case Else
Row...続きを読む

Qスプレッド上のマウスムーブイベント

VB6.0について質問です。
スプレッドでマウスのカーソルがあたっている行のバックカラーを変えたいのですがうまくいきません。
MouseMoveイベントでやっています。
バックカラーを変えるところまではなんとかできたのですが
その後カーソルがあたっていないところは色をもどしたいのですができません><
今やっている処理は以下のコードです。
実現するにはどこをに何を加えたらよいですか?

Private Sub spdlist_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim actrow

With spdlist
.Col = -1
actrow = Int(y / 400)
.Row = actrow
.BackColor = vbred
End With

End Sub

Aベストアンサー

セル幅を1行ごとに計算しなければなりません。
できればClickイベントを使いたいところです。

下記のような感じでいかがですか?
.RowHeight(i) + 10としているのは、.RowHeightには
罫線の幅が含まれないからです。

スクロールには対応していません。

Public OldRow As Integer

Option Explicit
Private Sub fpSpread1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim i As Integer
Dim MyHeit As Integer
With fpSpread1
.Col = -1
.Row = OldRow
.BackColor = vbWhite
.UnitType = 2
MyHeit = 0
For i = 0 To .MaxRows
MyHeit = MyHeit + .RowHeight(i) + 10
If MyHeit > y Then Exit For
Next i
.Col = -1
.Row = i
.BackColor = vbRed
OldRow = i

End With

End Sub

セル幅を1行ごとに計算しなければなりません。
できればClickイベントを使いたいところです。

下記のような感じでいかがですか?
.RowHeight(i) + 10としているのは、.RowHeightには
罫線の幅が含まれないからです。

スクロールには対応していません。

Public OldRow As Integer

Option Explicit
Private Sub fpSpread1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim i As Integer
Dim MyHeit As Integer
With fpSpread1
.Col = -1
....続きを読む

Qテストツールを作りたいのですが

1台のマシンで、同時に複数のINSERT文を流せるツールを作りたいと思っています。
何か参考になる手段を教えてください。
環境:winXP,VB6,Oracle9i

Aベストアンサー

VB6ではマルチスレッドのプログラムが作成できないので、VB6によるプログラム単独ではシーケンシャルにSQLを発行することしかできません。ですので、VB6を使用して複数のSQLを平行して発行するには、VB6によるプログラムを複数同時に起動するしかありません。

ユーザからテスト条件を受け取りSQL発行プログラムを複数起動するEXEと、あらかじめ与えられたテスト条件でSQLを発行するEXEの2つを作成してはいかがでしょうか。

QExcelのマクロで検索ボタンを作るには

Excelでマクロを使ってボタン(検索ボタンみたいなのを作って)を押すと検索ウィンドウが開いて検索できるようにしたいのですがどうすればいいでしょうか?
現在ブックの中に会員登録sheetと当日参加者sheetという風に分けていて当日の参加者一覧は会員登録者の中から会員番号で登録していくという形を作っています。そこで当日参加者の会員番号を抽出する為に当日参加者のsheetを開いている状態で会員登録者sheetの中から名前を検索して会員番号を抽出したいと思っています
マクロの登録でCTRL+Fで検索ウィンドウを開いて検索(このときの検索条件はブック全体にしています)
すると検索が終わった時点で会員登録sheetに切り替わっているのでsheetを当日参加者に
切り替えてマクロの登録終了にしたのですがマクロの実行を行っても何も起きませんでした。
なにかよい方法はありますでしょうか?教えて下さいm(__)m

Aベストアンサー

質問が複数あるので、返答が付かないのでは?
表題の件なら、マクロの記憶を実行しそれをボタンに登録すればできます
思い通りの動作がしないのを事を聞きたいのであれば、やりたい事を書いて、コードを乗せましょう
もちろん質問のスレッドは変えて下さい

これだけではあんまりなので、ヒントを1つ
ステップ実行はご存知ですか?
F8で実行すると一段ずつ実行されます
そのとき、各項目に何が入力されているか知る事ができます
これで、何が原因か知る事ができる場合が多いです
(今回の件だと、検索項目が空だった=検索項目の入力に問題あり な感じで調べられます)

Qシート上のオプションボタン、チェックボックスを配列にする。

シート上のオプションボタン、チェックボックスを配列にする。

Excel2003です。
シート上にオプションボタン、チェックボックスを増やすと、OptionButtonN、CheckBoxN (大文字Nは任意の数値)となります。これをOptionButton(N)のように配列にできないでしょうか?
プログラムで扱う場合、配列でしたら処理が楽になると思うからです。

また、同じくシート上にオプションボタンを配置するとどれか1つしか選択できません。(ひとつしかValueをTrueにできません。)
UserFormのようにFrameがあればその中で1つを選択できるのですが、シート上に直接配置する場合、Frameが扱えないように思います。グループ化して複数選択する方法はないでしょうか。

よろしくお願いします。

Aベストアンサー

> OptionButton(N)のように配列にできないでしょうか

出来ません。
一つ発想を替えてLinkedCellを使ったらどうでしょうか。
OptionButton1をA1
OptionButton2をA2
OptionButtonNをAN (大文字Nは任意の数値)
に設定し、A1,A2,A(N)を参照します。
A1をTrue にするとOptionButton1はONに
逆に
OptionButton1をOFFにするとA1はFalseになります。


> グループ化して複数選択する方法
GroupNameを適当にグループ毎に名前を付けてやれば出来ます。


このカテゴリの人気Q&Aランキング

おすすめ情報