- ベストアンサー
エクセル スクロールバー Min/Max値
Wendy02の回答
Private Sub Worksheet_Change() でも、 Private Sub Worksheet_Calculate() でも、いいけれども、後者は、計算された時に発生するものですから、不確実だと思いますし、Min/Maxは、そう多く変動するものではありませんから、通常、プロパティから設定するものだと思います。 LinkedCell プロパティは、マクロではなく、ワークシートで、編集モードから、コントロールツールを選択し、右クリックして、プロパティから、設定してください。 面倒なら、それらはボタンを設置してもよいと思いますが、ワークシートのCalculateイベントとはなじまないと思います。 なお、Value プロパティは入らないのでは? >ScrollBar1.Min.Value = Range("A2") ScrollBar1.Min = Range("A2").Value p.s. 前回のご質問のこちらの書き込みは分かりましたか? 「エクセル マクロ 表示ボックス?」 締め後に、回答を入れました。当然、質問者さん側も、締め後に書き込み可能です。難しいので、分からないのなら、特にコメントは求めませんが、こちらは、問題は出ていません。
関連するQ&A
- EXCEL VBAで作成したスクロールバーの不具合を修正したいのですが
ちょっと言葉だと説明しにくいのですが、教えていただきたいことがあります。 EXCEL VBAでスクロールバーを作成したのですが、 スクロールバーの上部1/5程度で全部のデータが終わってしまいます。 データ数に合わせて、スクロールした一番最後に最後のデータが来るように修正することは可能でしょうか。 自分で色々試してみましたが原因がさっぱりわかりませんでした。 作成したマクロは以下のとおりです。 *シート「一覧」のA列~D列×3000行のデータを入力 シート「リスト」にスクロールバーを設置 Private Sub ScrollBar1_Change() currow = ScrollBar1.Value Call smpscrollbar End Sub Private Sub Workbook_Open() currow = 3 With Sheets("リスト").ScrollBar1 .Min = 3 .Max = Sheets("一覧").Range("A1").CurrentRegion.Rows.Count End With Call smpscrollbar End Sub Sub smpscrollbar() With Sheets("リスト") .Range("B1").Value = Sheets("一覧").Range("A" & currow).Value .Range("E1").Value = Sheets("一覧").Range("B" & currow).Value .Range("I1").Value = Sheets("一覧").Range("C" & currow).Value .Range("N1").Value = Sheets("一覧").Range("D" & currow).Value End With End Sub
- ベストアンサー
- オフィス系ソフト
- VBAでスクロールバーを動かしても値が変わらない
図のようなスクロールバーを動かして、それぞれの値と、A4のセルの色が変わるものを作りたいのです。 プログラムは、 Sub スクロール1_Change() R = Range("C2").Value G = Range("D2").Value B = Range("E2").Value Range("A4").Interior.Color = RGB(R, G, B) End Sub Sub スクロール2_Change() R = Range("C2").Value G = Range("D2").Value B = Range("E2").Value Range("A4").Interior.Color = RGB(R, G, B) End Sub Sub スクロール3_Change() R = Range("C2").Value G = Range("D2").Value B = Range("E2").Value Range("A4").Interior.Color = RGB(R, G, B) End Sub ですが、スクロールバーに関連付けられていないようです。基本ですみませんが、関連付けるにはどうすればいいのでしょうか。
- 締切済み
- その他MS Office製品
- マクロの自動実行
Private Sub Worksheet_Calculate() Range("b1").Value = Range("b1").Value + Range("a1").Value End Sub このマクロをA1セルの数値が変わるたびに自動で実行するには どうすればいいでしょうか?
- 締切済み
- その他MS Office製品
- エクセルVBAで最小値を求めたいのですが
下記はある表の最大値を求めるものですが 同様の条件で最小値を求めようと思い 「MAX」の箇所を「MIN」差し替えてできると思っていたのですが 最小値がのかわりに「0」が表示されてしまいます。 そのように修正すればよいでしょうか? private sub worksheet_change(byval Target as excel.range) if target.cells(1) = "" then exit sub if target.address = "$A$1" then Range("C10:C65536").ClearContents With Range(Cells(9 + Range("A1").Value, "C"), Cells(Range("A65536").End(xlUp).Row, "C")) .FormulaR1C1 = "=MAX(RC2:R[" & -Range("A1").Value + 1 & "]C2,FALSE)" .Value = .Value End With elseif target.address = "$E$1" then Range("G10:G65536").ClearContents With Range(Cells(9 + Range("E1").Value, "G"), Cells(Range("E65536").End(xlUp).Row, "G")) .FormulaR1C1 = "=MAX(RC6:R[" & -Range("A1").Value + 1 & "]C6,FALSE)" .Value = .Value End With end if end sub
- ベストアンサー
- オフィス系ソフト
- VB2005 スクロールバー
formにPanelと、そのPanelの中にPictureBox(大きさがPanelより大きい画像)を入れてあります。 スクロールバーが出ます。 Private Sub Button1_Click(~~ Panel1.HorizontalScroll.Value = Panel1.HorizontalScroll.Value + 100 End Sub としてボタンによってスクロールバーが移動するようにしたのですが。 実際には、1回目のクリックでPictureBoxの画像が移動、スクロールバー移動せず。 2回目のクリックでスクロールバーが移動、PictureBoxの画像は移動せず。 と、3回目4回目もこの繰り返しです。 どうしたら一回のクリックでPictureBoxの画像・スクロールバー共に移動できますか?
- ベストアンサー
- Visual Basic
- エクセルVBAについて
http://okwave.jp/qa/q7236213.html 上記質問の発展形なのですが 同様のことを E列に日付 F列に売上 G列に結果 でやりたいのですが この時A列~C列のマクロも残したままでしたいのですが 下記のように同様のプロシージャーを下段に書けばできると思ったのですが うまくいきません。 Private Sub worksheet_change(ByVal Target As Excel.Range) If Target.Address <> "$A$1" Then Exit Sub If Target = "" Then Exit Sub Range("C10:C65536").ClearContents With Range(Cells(9 + Range("A1").Value, "C"), Cells(Range("A65536").End(xlUp).Row, "C")) .FormulaR1C1 = "=MAX(RC2:R[" & -Range("A1").Value + 1 & "]C2,FALSE)" .Value = .Value End With End Sub Private Sub worksheet_change(ByVal Target As Excel.Range) If Target.Address <> "$E$1" Then Exit Sub If Target = "" Then Exit Sub Range("G10:G65536").ClearContents With Range(Cells(9 + Range("E1").Value, "G"), Cells(Range("E65536").End(xlUp).Row, "G")) .FormulaR1C1 = "=MAX(RC6:R[" & -Range("A1").Value + 1 & "]C6,FALSE)" .Value = .Value End With End Sub どなたかお知恵を拝借できませんでしょうか?
- ベストアンサー
- オフィス系ソフト
- エクセル VBA
A1,A2,A3→RAND()*99+1 B1→MAX(A1:A3) Sub test() Worksheets("sheet1").Calculate Dim x As Integer x = Range("B1") Range("C1").Value = x End Sub このように記述すると、B2とC2で結果が変わってしまうのですが、どうしてでしょうか?結果を同じにするにはどうすればいいですか?
- ベストアンサー
- その他MS Office製品
- EXCEL 異なるVBA
教えて下さい、EXECL以下の異なるVBA (A>,B>)が2つあります、同じシートでそれぞれ動くようにさせたいです1つに合わせる事は出来ないでしょうか? 当方初心者の為わかりません教えて下さい。 A> Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Address(0, 0, xlA1, 0) <> "A1" Then Exit Sub With Range("F9:I9,K17:K36").Borders(xlDiagonalUp) If Left$(Target.Value, 1) = "S" Then .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic Else .LineStyle = xlNone End If End With End Sub B> Private Sub Worksheet_Change(ByVal Target As Range) With Sheet2 Select Case Target.Address Case Is = "$D$1" .Range("A1").Insert Shift:=xlDown .Range("A1").Value = Target.Value Case Is = "$D$2" .Range("B1").Insert Shift:=xlDown .Range("B1").Value = Target.Value End Select End With End Sub
- 締切済み
- その他([技術者向] コンピューター)
- エクセル デバッグできるのとできないのがある
シートイベントについて教えてください。 シートモジュールに --------------------------------------------------------- Option Explicit Private Sub Worksheet_Activate() MsgBox "" End Sub Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) MsgBox "" End Sub Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "" End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) MsgBox "" End Sub --------------------------------------------------------- と記載した時に、 F8で動かせるのは、Worksheet_Activateだけなのですがなぜでしょうか? ほかのイベントは、F8で実行させても、OSの音が鳴るだけで、マクロの実行はされません。 ご回答よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBAスクロールを規制する
Private Sub Workbook_Open() Sheets("Sheet1").ScrollArea = "A1:AK23" End Sub 上記のコードでA1からAK23までしか選択できないようにしてスクロールを止めてるのですが、 range("BZ24").value="あ" range("BZ24").select を実行した場合、bz24には「あ」と言う文字が入力され、選択されますか? また、選択された時でも画面はA1:AK23から動かないですよね?
- 締切済み
- Visual Basic
お礼
ありがとうございます。うまく機能きました。丁寧な説明ありがとうございます。
補足
前回の回答ありがとうございます。うまく実現できました。