• 締切済み

excel2003 VBA のスピンボタンについて

とあるワークシートにスピンボタンがあり、C2セルの値を変えるようにしています。 スピンボタンのup,downの記述は下記の通りです。 ここで、スピンボタンを長押し(どちらかに押しっぱなし)したときに、ばぁーと数字が ドンドン進んでいくようにしたいのですが、 今は長押ししても、何も変わりません。 どのように修正すればよいでしょうか? Private Sub SpinButton1_SpinDown() Range("C2").Value = Format(DateValue(Range("C2").Value) + 1, "yyyy/mm/dd") Call hyouji Application.ScreenUpdating = True End Sub Private Sub SpinButton1_SpinUp() Range("C2").Value = Format(DateValue(Range("C2").Value) - 1, "yyyy/mm/dd") Call hyouji Application.ScreenUpdating = True End Sub

  • puyopa
  • お礼率87% (459/525)

みんなの回答

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

Range ("C2")のデータは何型? 単に+1すれば? Callしてる先でどんなことをしてますか? ScreenUpdating=Trueと対になる行(=False)はどこにありますか?

puyopa
質問者

お礼

元々、デフォルトで出来ることがわかりました。 call先で、他シート選択しているのがダメみたいでした。 ありがとうございました。

関連するQ&A

  • excel2000 vba スピンボタン

    いつもお世話になっています。 下記内容の変更をしたいのですが、自分ではうまくいかず、お力をお貸しください。 よろしくお願いします。 一枚のデータシートと一枚の入力用フォームがあります。 入力フォームのスピンボタンのNOをキーにして、データシートのレコードを一件ずつ切り替えて、表示させるようにしています。 さてデータシートのオートフィルターでフィルターをかけた時に、それにあわせて、スピンボタンのNOを飛ばすようにしたいのですが、どのように修正していいか、わかりません。 現状ですと、下記プロシージャですが、いまのままだと、スピンボタンの値が一つずつしかかわりません。 'スピンボタンの値が変わったらテキストボックスに反映 Private Sub SpinButton1_Change() TextBox1.Value = SpinButton1.Value Call hyouji End Sub Private Sub hyouji() 'データを検索して表示する Dim fRange As Range Dim fRow As Long Set fRange = Sheets("data").Columns(3).Find(what:=TextBox1.Value, _ LookIn:=xlValues, lookat:=xlWhole, SearchOrder:=xlByRows) If (fRange Is Nothing) Then ' MsgBox "Noがみつかりません", vbExclamation Exit Sub End If fRow = fRange.Row '検索されたNoの行位置を求める With Worksheets("data") TextBox2.Value = .Cells(fRow, 4).Value TextBox3.Value = .Cells(fRow, 5).Value TextBox4.Value = .Cells(fRow, 6).Value TextBox5.Value = .Cells(fRow, 7).Value TextBox6.Value = .Cells(fRow, 8).Value End With SpinButton1.SetFocus End Sub ※現物ファイルを下記に投稿(No5643)させていただきました。見ていただけると幸いです。 http://www.kent-web.com/pubc/book/test/uploader/uploader.cgi

  • エクセルVBA「スピンボタン」について

    エクセルVBA「スピンボタン」について スピンボタンとテキストボックスを組み合わせて Private Sub SpinButton1_Change() Me.TextBox1.Value = Me.SpinButton1.Value End Sub Private Sub UserForm_Initialize() With Me.SpinButton1 .Min = 1 .Value = .Min End With Me.TextBox1.Value = Me.SpinButton1.Min End Sub というコードを書きました。 「1、2、3、・・・10、11、・・・」という数の増加を「01、02、03・・・10、11・・・」という風にしたいのですがどのようにコーディングすればよいのでしょうか?お願いします。.

  • エクセルVBAでスピンボタン

    ワークシート上にスピンボタンを配置しました。 Valueは、Max100、Min0 で設定しました。 やりたいのは、スピンボタンでValueを減らしていって、0になるまでは何も言わず、Valueが0の状態でさらに減らそうとした場合、メッセージを出したいのです。 Private Sub SpinButton1_Change() If SpinButton1 <= 0 Then MsgBox "マイナスにはできません!", vbCritical End If End Sub としましたら、0になった瞬間にメッセージがでてしまいます。 If SpinButton1 < 0 Then としたら、マイナスにはならないので当たり前ですが何も出ません。 どうしたらいいでしょうか?

  • excel VBA スピンボタンの値をジャンプ

    いつもお世話になります。 コードで、スピンボタンの値をC4セルに入れて変化させています。 下記やりたいことに対して、コードにどのような編集を加えればいいかアドバイスをお願いいたします。 ◆やりたいこと C4セルに任意の数字を手入力⇒enterボタンを押した後に、スピンボタンの値をその数字がら追従して変化させたい。 たとえば、スピンボタンで11⇒12⇒13と変化させているところで、C4セルに77と入力した後にスピンボタンを押すと、78⇒79⇒80と変化できるようにさせたいです。 '◆スピンボタンコード Private Sub SpinButton1_Change() Range("C4").Value = SpinButton1.Value SpinButton1.Min = 1 End Sub

  • ExcelVBA スピンボタンの値について

    参考書を片手に勉強中のエクセルVBA初心者です。 ぜひアドバイスをお願いします…! Excel2000でユーザーフォームを作成し、スピンボタンを使用して数値を指定できるよう、以下のソースを記述しました。 ----------------------------------------- Private Sub UserForm_Initialize() With SpinButton1 .Min = 20 .Max = 150 .Value = 150 .SmallChange = 5 End With End Sub ----------------------------------------- Private Sub SpinButton1_Change()   TextBox1.Value = SpinButton1.Value / 10 End Sub ----------------------------------------- Private Sub TextBox1_Change()   TextBox1.Text = Format(TextBox1.Text, "0.0") End Sub ----------------------------------------- これを、スピンボタンも使用でき、かつ手入力にも対応するように動作させたいと考えています。 具体的にはテキストボックスに6(ランダムな値)と手入力後、 スピンボタンを使用してで6.0の値から増減させたいのですが、 そのようなことは可能でしょうか? 可能であれば、どのようにすればよいのでしょうか? (テキストボックス内の値は、小数点第1位まで表示させ、2.0~15.0の値しか表示できないようにしたいです) どうかご回答よろしくお願いいたします。

  • Excel VBA スピンボタンの使い方

    Excel VBA 初心者です。 ActiveXでシート上にTextBox1とSpinButton1を配置した場合で、 SpinButton1.Valueの値をコードで設定したとき、それまでの値と異なっていてもChangeイベントを発生させない方法はあるでしょうか。 例えば以下のようなコードです。 ---------------------- Private Sub 初期設定() 'ここでSpinButton1.Enabled = False を入れてもグレーアウトするのみでChangeイベントは発生する Dim N As Long N = 20 SpinButton1.Value = N '↑TextBox1.Valueが<>Nの時でも 'ここでChangeイベントに飛ばさない方法はあるでしょうか? End Sub '↓通常はこの動作 Private Sub SpinButton1_Change() TextBox1.Value = SpinButton1.Value 'さらにこのあと数値増減による処理有り End Sub ---------------------- 「SpinButton1.Enabled = False」ではグレーアウトはしますがコードからの設定ではChangeイベントは発生しました。 宜しくお願い致します。

  • エクセル シート上のTextBox(日付)

    今まではForm上にTextBoxを貼り、スピンボタンにて日付を変化させるのは できるのですが、これをシート上で日付を動かすと どのような記述の変化が必要なのでしょうか? TextBoxはhidukeという名でしています!日付は出るのですが スピンボタンは動きません! すいません教えて下さい! Private Sub SpinButton1_SpinDown() Me.hiduke.Value = DateAdd("d", -1, Me.hiduke.Value) End Sub Private Sub SpinButton1_SpinUp() Me.hiduke.Value = DateAdd("d", 1, Me.hiduke.Value) End Sub Private Sub hiduke_Change() Me.hiduke.Value = Format(Now(), "yyyy/mm/dd") End Sub

  • EXCEL VBA 日別データを検索しコピー

    度々すいません。行き詰まりましたので教えてください。 エクセルSheet2に月の日別のデータがあります。日によってデータの 行数はまちまちですが、A列には日付、B,C,D列には時間、E列には目的等々があります。そのデータをユーザーフォームのスピンボタンで日付を指定し、コマンドボタンをクリックしたら、Sheet1の1日分の表にコピーしたいのです。また指定日がなければメッセージで指定日がありませんと表示したいのです。よろしくお願いします。 excel2003 Private Sub SpinButton1_Change() TextBox1.Value = Date + SpinButton1.Value End Sub Private Sub CommandButton1_Click() '年月日表示 Range("C3") = Format(TextBox1.Value, "yy") Range("D3") = Format(TextBox1.Value, "mm") Range("E3") = Format(TextBox1.Value, "dd") Range("F3") = Format(TextBox1.Value, "aaa")   ここがわかりません   Else MsgBox "指定日がありません" End If End Sub

  • ユーザーフォームの結果を

    お世話になります。 下記の様な記述の ユーザーフォームで、 テキストボックスを3つ設け、それぞれに 年、月、日を入力し、その値を シートのあるセルに表示したいのですが、 例えば、月や日が一桁の場合には最初に「0」を 付けたいのですが、うまくいきません。 何卒、ご教示下さいます様お願い申し上げます。       記 Private Sub UserForm_initialize() SpinButton1.Max = 2050 ' 初期設定 SpinButton2.Max = 12 SpinButton2.Min = 1 SpinButton3.Max = 31 SpinButton3.Min = 1 SpinButton1.Value = Year(Date) SpinButton2.Value = Month(Date): If month_mm < 10 Then month_mm = "0" & month_mm SpinButton3.Value = Day(Date): If day_dd < 10 Then day_dd = "0" & day_dd End Sub Private Sub SpinButton1_Change() Call DAY_PUT End Sub Private Sub SpinButton2_Change() Call DAY_PUT End Sub Private Sub SpinButton3_Change() Call DAY_PUT End Sub Sub DAY_PUT() TextBox1.Value = SpinButton1.Value TextBox2.Value = SpinButton2.Value TextBox3.Value = SpinButton3.Value End Sub Private Sub CommandButton1_Click() tbox1 = TextBox1.Value tbox2 = TextBox2.Value tbox3 = TextBox3.Value Workbooks("集計表").ActiveSheet.Range("a1") = tbox1 & tbox2 & tbox3 Unload Me End Sub

  • VBA SPINボタンのFOR文

    現在下記のようなプログラムを作成しているのですが For i = 1 To 30 列番号 = Sheets(1).SpinButton1.Value     処理 next 実はSPINBUTTONが30個あり(spinbutton1~spinbutton30) 行番号の部分をfor文のIを用いてSPINボタンを複数で まわしたいのですがどうすればいいのでしょうか? 以下のやり方で試してみたのですが、 ”オブジェクトはメソッドをサポートしていません” というエラーが発生しました。 列番号 = Sheets(1).me("SpinButton" & i).Value どうすれば複数のspinbuttonをFOR文でまわせるのでしょうか?

専門家に質問してみよう