× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 |
![]() |
Excelマクロのモジュールをそのまま貼り付け。
(会社とか家とか出先とかで見るため) 「Option Compare Binary」以下を標準モジュールに貼り付ければ、Myマクロ辞典に! 貼り付け後、「■Sub 」を「Sub 」に置き換えよう! ※公開している以上、利用は自由ですが、自己責任で。 Option Compare Binary Option Explicit Private myTime As Date '''Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 'Sleep API関数用 ' 'タイマー、アラート ■Sub タイマーその1() '【OnTimeメゾット】 '20秒間待機した後、myProcを実行。 '待機中、エクセルは固まらない。 myTime = Now + TimeSerial(0, 0, 10) Application.OnTime myTime, "myProc" 'Application.OnTime Now() + TimeSerial(2, 45, 0), "myProc" ‥×? End Sub ■Sub タイマーその2() '【OnTimeメゾット】 '指定した時刻にマクロを実行する Application.OnTime EarliestTime:=TimeValue("11:50:00"), Procedure:="myProc" End Sub ■Sub myProc() '【OnTimeメゾット】 MsgBox "お時間でごんす。" End Sub ■Sub Cancel() '【OnTimeメゾット】 'タイマーその1を実行する前にこのマクロを作っておき、 'タイマーその1実行後、キャンセルしたい時に実行すると、止めることができる。 Application.OnTime myTime, "myProc", , False MsgBox "キャンセルでごんす。" End Sub ■Sub タイマーその3() '【Waitメゾット】 'これを実行すると、その間エクセルは固まります。(例は2分45秒間停止) '待機中何もさせたくないときにいいかも。 Application.Wait Time:=Now + TimeValue("02:45:00") End Sub ■Sub Sleepで処理を一時中断() '指定した時間だけ処理を停止する '引数はミリ秒単位だから「Sleep 1」で0.001秒停止します。 '宣言が必要(いずれか一方) 'Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 'Sleep API関数用 'Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 'Sleep API関数用 '【使用例】 Dim i As Long For i = 1 To 10 Cells(i, 4).Value = i Sleep 100 '←★ Next End Sub ■Sub DoEvents関数() 'otherモジュール参照 End Sub PR |
![]() |
Excelマクロのモジュールをそのまま貼り付け。
(会社とか家とか出先とかで見るため) 「Option Compare Binary」以下を標準モジュールに貼り付ければ、Myマクロ辞典に! 貼り付け後、「■Sub 」を「Sub 」に置き換えよう! ※公開している以上、利用は自由ですが、自己責任で。 Option Compare Binary Option Explicit 'ブックとウィンドウ関連マクロ ■Sub ブックの更新() 'マクロ実行中にブックの描画を停止する。 Application.ScreenUpdating = False '画面更新をOFFに! ThisWorkbook.Save Application.ScreenUpdating = True '画面更新をONに! End Sub ■Sub ウィンドウを最前面にする() '同一ファイルのウィンドウを複数開いている場合のウィンドウの取得 '取得したいウィンドウを指定するにはインデックス番号で指定するかウィンドウ名で指定。 '注意する点は、インデックス番号はアクティブなウィンドウが「1」になるため常に変化する。 Windows(2).Activate Worksheets("マニュアル").Activate Range("b2").Select '一番後ろのウィンドウを最背面(アクティブ)にする …? ActiveWindow.ActivatePrevious End Sub ■Sub ウィンドウを最背面にする() ActiveWindow.ActivateNext '? End Sub ■Sub 新しいウィンドウを開く() ActiveWorkbook.NewWindow End Sub ■Sub ウィンドウの表示切替() ActiveWindow.WindowState = xlMaximized '最大表示 ActiveWindow.WindowState = xlMinimized '最小表示 ActiveWindow.WindowState = xlNormal '通常表示 Windows.Arrange ArrangeStyle:=5 'アイコンを整列 End Sub ■Sub ウィンドウの更新() 'マクロ実行中に画面描画を停止する。→ブックの更新 End Sub ■Sub ウィンドウの整列() Workbooks("ID.xls").Activate Windows.Arrange ArrangeStyle:=xlTiled '(タイル状に)並べて表示 Windows.Arrange ArrangeStyle:=xlCascade '(段々状に)重ねて表示 Windows.Arrange ArrangeStyle:=xlHorizontal '水平に(上下に並べる) Windows.Arrange ArrangeStyle:=xlVertical '垂直に(左右に並べる) End Sub ■Sub ウィンドウのサイズ変更() ActiveWindow.WindowState = xlNormal '画面表示を通常に(not最大化) ActiveWindow.Height = 200 '高さ変更 28以上の値が指定できます。 ActiveWindow.Width = 900 '幅変更 9以上の値が指定できます。 ActiveWindow.Top = 460 '縦位置変更 マイナス値ok ActiveWindow.Left = 55 '横位置変更 マイナス値ok End Sub ■Sub ウィンドウのサイズ変更その2() Windows(1).Activate 'ウィンドウサイズと位置を指定 ActiveWindow.Height = 200 ActiveWindow.Width = 900 ActiveWindow.Top = 460 ActiveWindow.Left = 55 End Sub ■Sub エクセルのウィンドウサイズの変更() Application.WindowState = xlNormal '画面表示を通常に(not最大化) Application.Height = 700 'すべてマイナス値も指定可 Application.Width = 960 Application.Top = 0 Application.Left = 1 End Sub ■Sub ウィンドウ番号を指定() Windows(i).Activate 'その時点でアクティブなウィンドウが1番目、それ以降はアクティブだった順番に番号に1が加算。 End Sub ■Sub ブック名を変数に導入() Dim myFile As String myFile = ActiveWorkbook.Name Debug.Print myFile 'フルパス付きファイル名を取得 'myfile = ActiveWorkbook.FullName End Sub ■Sub ブック名をオブジェクト変数に導入() Dim myFile As Workbook Set myFile = ThisWorkbook Range("A1").Value = myFile.Name Range("A2").Value = myFile.FullName Range("A3").Value = myFile.Path myFile Nothing 'WorkbookにはNameのほかに、FullNameとかPathとかのString型のプロパティがあります。 End Sub ■Sub ブック数を取得() MsgBox Workbooks.Count '非表示(PERSONAL.XLSとか)もカウントしてしまう End Sub ■Sub ブックを探す() '→sheet の「シートを探す」参照 End Sub ■Sub 画面表示されている範囲を取得() '表示されているセル範囲を取得 MsgBox ActiveWindow.VisibleRange.Address '表示されている左端のセル番地を取得 MsgBox ActiveWindow.VisibleRange.Cells(1).Address '表示されている左端の列番号を取得 MsgBox Split(ActiveWindow.VisibleRange.Cells(1).Address, "$")(1) '表示されている左端の行番号を取得 MsgBox Split(ActiveWindow.VisibleRange.Cells(1).Address, "$")(2) End Sub ■Sub ウィンドウ枠の固定() Range("B2").Activate ActiveWindow.FreezePanes = True '=falseで固定解除 Windows("Book1").FreezePanes = True End Sub ■Sub スクロールその1() '※アクティブセルは移動しません '行単位または列単位でスクロールする ActiveWindow.LargeScroll Down:=1, ToRight:=2 '画面単位でスクロールする ActiveWindow.SmallScroll Up:=-1, ToLeft:=-2 '指定した行番号が上端になるようにウィンドウをスクロール ActiveWindow.ScrollRow = 行番号 '指定した列番号が左端になるようにウィンドウをスクロールする ActiveWindow.ScrollColumn = 列番号 'アクティブシートのA1セルを選択してウィンドウをスクロールする Application.GoTo Range("A1") '※3 '指定シートの指定セルを選択してウィンドウをスクロールする Application.GoTo Reference:=Worksheets(シート名) .Range (セル番号), Scroll:=True '※5 End Sub ■Sub スクロールその2() '※アクティブセルを移動 '指定したセルをウィンドウの左上にしてスクロールする Application.GoTo Reference:=Range("A1"), Scroll:=True 'スクロールしないが、選択セルが現在のウィンドウ内にない場合スクロールされる Application.GoTo Reference:=Range("AN35"), Scroll:=True End Sub ■Sub 枠線を非表示にする() ActiveWindow.View = xlNormalView ActiveWindow.DisplayGridlines = False Range("a1").Select End Sub ■Sub 枠線の表示切替() ActiveWindow.DisplayGridlines = True '枠線の表示 ActiveWindow.DisplayGridlines = False '枠線の非表示 End Sub ■Sub 水平スクロールバー() ActiveWindow.TabRatio = 0.5 '水平スクロールバーを半分の幅に設定 '数値はスクロールバー以外の部分(シートタブ)の割合 '0.1だとシートタブ領域がウィンドウの幅の10%となり、スクロールバーは90%を占める End Sub |
![]() |