
エクセルでスピンボタンとスクロールバーについて
エクセル2000です。
フォームのスピンボタンとスクロールバーをワークシート上に配置した場合、両者ともほぼ同じ働きをしてくれます。
ところが、大きな違いが有ります。
スピンボタンは上向き▲で数値が大きくなっていきます。これは感覚的にしっくりきます。
ところが縦向きのスクロールバーは上向き▲で数値が逆に小さくなっていきます。これはちょっと違和感があります。
それなら、スピンボタンを使えばいいだけのことと言われそうですが、スピンボタンにはバーがないのでスライドさせて数値を動かすことができないのでスクロールバーを使いたいのです。
もちろん数式を用いて、セルの表示上でそうなるようにはできますが、それではリンク先セルに直接数値を入力ができなくなり不便です。
スクロールバーで上向き▲で数値が大きくなるような設定にはできないのでしょうか?
スクロールバーを縦ではなく横向きに配置すれば右スクロールで数値が増え、数直線と同じでしっくりくるのですが、レイアウトの都合で縦向きに配置したいのです。
わがままな質問ですみません。
よろしくお願いします。 (o。_。)oペコッ.
(なお、同じ質問を1時間ほど前に投稿したつもりだったのですが、なぜか反映されていないので再度質問いたしました。もし二重になっていたら申し訳ありません。)
No.2ベストアンサー
- 回答日時:
マクロなら、こうなります。
こちらは、スクロールそのものには対応していません。理由は、イベントだから、クリックしている間は、マクロは停止されます。
(以下は、Max を100 と設定しています)
Sub スクロール1_Change()
With ActiveSheet.ScrollBars(1)
Range("B10").Value = .Max - .Value
End With
End Sub
セルの表示なら、どこか見えない所に、LinkedCell(リスクするセル) を置いて、
見える場所にセルに、以下のように置けば、増減は逆になります。
=100-A100 ←LinkedCell
もちろん、コントロールツールなら、SmallChangeプロパティを、-1 にすればよいはずでしたが、フォームは、負の数は設定できないようです。
Wendy02さま、いつもお世話になります。
マクロでの対処はANo1さんのアドバイスですでに試したのですが、フォームでなくActiveXコントロールのスクロールバーでマイナスの設定ができるとは思いませんでした。
で、試したところ、SmallChangeを、-1 にすると下向き三角をクリックするとバーが上へ移動、上向き三角だとバーが下へ移動と、逆になりますが、バーが上に行けばやはり数値は減少してしまうことに変わりありませんでした。
でも、マイナスが入力できるならひょっとして・・・と思い、SmallChangeは+1に戻し、Maxの値とMinの値を逆に入力してみました。
フォームでは最大値が最小値より小さい!とエラーになったこの方法が、ActiveXコントロールでは使えました!!
アドバイスありがとうございます。
解決しました。
No.1
- 回答日時:
フォームのスクロールバー自体の設定だけではどうも無理っぽいです。
素直にマクロで対処してください。
仮にリンクするセルをA1として、これは作業用として非表示。
表示/入力用セルをB1とする、など、リンク先セルと表示セルを分ける。
スクロールバーにマクロを登録。
マクロ内容は、最大値からリンクセルA1を引いた値をB1にセットする。
それと、Worksheet_Changeイベントで、B1セルChange時に
最大値からB1を引いた値をA1にセットする。
スクロールバーのマクロにはApplication.EnableEventsの制御も必要です。
連続スクロール時のセル表示にちょっと違いが出ますが、そこは妥協も必要かと。
end-uさま、いつもありがとうございます。
マクロで対応することは考えていませんでしたが、やってみました。
たしかに、矢印をクリックした場合はそうなりますね。
ただ、おっしゃる通り、残念ながらスクロールバーをスライド中はセル表示がぜんぜん変わってくれませんね。
スライドを終えた瞬間に表示されるだけなので、どこでスライドをストップさせるのかを使う人が数値で認識できないのが大きな難点です。
妥協も必要ですね、今回はレイアウトを妥協して横向きにすることで対応することにします。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで指定したセルの増減ボタンを作りたい 2 2022/12/02 11:03
- Excel(エクセル) エクセル、日々の集計整理方法。(再送です。) 5 2022/10/02 00:19
- gooブログ 記事の下にスクロールバーが表示される 2 2022/08/19 20:42
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) 電卓は正しいのに エクセルで計算させると間違った答えです。なぜ? 7 2022/08/11 07:04
- Excel(エクセル) IF 関数で「〇〇 という文字を含む場合」の分岐処理で表示された数字はSUMで数字集計できますか? 3 2022/08/02 16:29
- Excel(エクセル) エクセルで値ではなく関数を参照する方法 6 2023/03/19 00:50
- Excel(エクセル) エクセル関数について 2 2022/04/13 18:25
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでの SendKeysの変数指定方法
-
エクセルでスピンボタンとスク...
-
Excelマクロ セルを行頭に移動
-
マクロのデータ削除
-
セルをクリックしたら色を変え...
-
チェックボックスをクリックし...
-
エクセルで複数のシートのクリ...
-
「段」と「行」の違いがよくわ...
-
【マクロ】実行時エラー '424':...
-
Excelで、あるセルの値に応じて...
-
vba 2つの条件が一致したら...
-
Excel UserForm の表示位置
-
あああ..ああい..ああう とい...
-
エクセル 上下で列幅を変えるには
-
コンボボックスへ降順に表示す...
-
別ブックをダイアログボックス...
-
Excelで空白セル直前のセルデー...
-
Worksheets メソッドは失敗しま...
-
複数指定セルの可視セルのみを...
-
【VBA】【ユーザーフォーム_Lis...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vbaで指定したセルより下の行を...
-
エクセルでセルをクリックする...
-
VBAでの SendKeysの変数指定方法
-
Excel VBA:フォーム←→セルのア...
-
エクセルマクロで「セルのサイ...
-
Excelマクロ セルを行頭に移動
-
マクロのデータ削除
-
セルをクリックしたら色を変え...
-
IF関数で違う値もTRUEになる
-
Excel VBA で色付きのセルの値...
-
excel マクロでの特殊文字入力方法
-
【EXCEL-VBA】特定の値の入った...
-
(エクセルVBA)セルを左クリッ...
-
ロックされていないセル内をクリア
-
ダブルクリックでセルに色をつ...
-
ファイルサーバー上のexcelファ...
-
Excelでプルダウンからフィルタ...
-
VBA Rangeの足し算
-
【VBA】アクティブセルだけ背景...
-
ExcelVBA コンボボックスに入力...
おすすめ情報