SSブログ
Excel2000 VBA独習 ブログトップ
前の16件 | -

ExcelVBA セルをダブルクリックしたら、行番号を取得する実験 [Excel2000 VBA独習]

ExcelVBA セルをダブルクリックしたら、行番号を取得する実験

VBA_d_click_1.jpg

手順

シート名を右クリック、コードの表示をクリック

VBA_d_click_2.jpg

worksheetオブジェクトを選択

VBA_d_click_3.jpg

次に、プロシージャ BeforeDoubleClick を選択すれば自動で

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

End Sub

が、入力される。

VBA_d_click_4.jpg

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    'セルをダブルクリックされたら
        MsgBox "選択セルの行番号は   " & Selection.Row
       
    'ダブルクリック後にカーソルがセルに入らないようにする
        Cancel = True

End Sub

VBA_d_click_5.jpg

 Cancel = True を書かないとダブルクリック後にセル内にカーソルが入る

VBA_d_click_6.jpg

 

 


Excel VBA グリッド線(枠線)表示非表示 [Excel2000 VBA独習]

Excel VBA グリッド線(枠線)表示非表示

g_line_onoff_2.jpgg_line_onoff_3.jpg

 

Sub グリッド線表示非表示()
'
'
If ActiveWindow.DisplayGridlines = False Then ActiveWindow.DisplayGridlines = True _
Else ActiveWindow.DisplayGridlines = False
End Sub

 ActiveWindow.DisplayGridlines = True 表示

 ActiveWindow.DisplayGridlines = False 非表示

 

Excel操作では、オプション→表示→枠線にチェックを入れる、外す

この作業をマクロに記録し改造した。

g_line_onoff.jpg

 

 


EXCEL2000 VBA シート番号とシート名一覧をメッセージボックスに表示する 実験 [Excel2000 VBA独習]

EXCEL2000 VBA  シート番号とシート名一覧をメッセージボックスに表示する 実験

ExcelVBA_Book_sheetName_number.png

ExcelVBA_Book_sheetName_number_2.png

シート番号はシートタブの順番、sheet1 が worksheets(1) とは限らない。

 

Sub シート番号とシート名()
Dim booksheet As String
For i = 1 To Worksheets.Count
    booksheet = booksheet & "シート番号 " & i & vbTab & Worksheets(i).Name & vbCrLf
Next i
MsgBox booksheet
 
End Sub
 
 

 


タグ:Excel2000 VBA

EXCEL2000 VBA 他のアプリを起動する 実験 [Excel2000 VBA独習]

EXCEL2000 VBA  他のアプリを起動する 実験

Shell("アプリケーションプログラムのフルパス")

 
Sub PhotoScape起動()
'PhotoScape を起動する
 
Shell ("C:\Program Files\PhotoScape\PhotoScape.exe")
 
End Sub

 


EXCEL2000 VBA フォームにカレンダーを表示し選択日付の有るセルに移動する 実験 その2 [Excel2000 VBA独習]

EXCEL2000 VBA  フォームにカレンダーを表示し選択日付の有るセルに移動する 実験 その2
http://telstar.blog.so-net.ne.jp/2012-11-11

他のPCで(XP,Excel2000)でカレンダーを追加できなかったので追加する方法

mscomct2.ocx をwindows→system32 にコピーする
VBEのツール→参照設定→参照をクリック、system32内のmscomct2.ocxを選択し追加する。

なぜかmyPCには mscomct2.ocxがあった。たぶんVB2012にをインストールしたから?または互換パックをインストールしたから?

検証するのが面倒なので取り合えず追加方法をメモ

糸冬

ExcelVBE_sansyo_01.png

ExcelVBE_sansyo_02.png

ExcelVBE_sansyo_03.png

Visual Basic 6.0 Service Pack 6

http://www.microsoft.com/ja-jp/download/details.aspx?id=5721

ExcelVBE_sansyo_04.png

 


 

 


タグ:Excel2000 VBA

EXCEL2000 VBA 1年前の今日の日付と曜日をメッセージボックスに表示 [Excel2000 VBA独習]

EXCEL2000 VBA  1年前の今日の日付と曜日をメッセージボックスに表示

ExcelVBA_1nenmae.png

 

Sub 一年前の今日()
'1年前の今日の日付 DateAdd("yyyy", -1, Date)
'曜日表示 Format(DateAdd("yyyy", -1, Date), "aaa")
 
MsgBox "1年前の今日の日付は " & vbCrLf & DateAdd("yyyy", -1, Date) _
& "(" & Format(DateAdd("yyyy", -1, Date), "aaa") & "曜日" & ")"
 
End Sub

 


タグ:Excel2000 VBA

EXCEL2000 VBA フォームにカレンダーを表示し選択日付の有るセルに移動する 実験 [Excel2000 VBA独習]

EXCEL2000 VBA  フォームにカレンダーを表示し選択日付の有るセルに移動する 実験

 ツールボックスにカレンダーコントロールを追加

ExcelVBA_Form_control_02.png

WindowsXPのシステムフォントをいじっていたら、文字化けするようになったょ  レジストリのバックアップとってない


ExcelVBA_Form_control_01.png

 

標準モジュール
Option Explicit

'vbModeless でフォームを表示したまま作業ができる
Sub フォーム起動()
UserForm1.Show vbModeless
End Sub

 

フォームをダブルクリックで
Option Explicit

 
 
Private Sub CommandButton1_Click()
Unload Me
End Sub

 
Private Sub Image1_Click()
Unload Me
End Sub

 
Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
Dim clickD
    On Error GoTo owari
    'クリックされた日付を取得
        clickD = MonthView1.Value
    '取得した日付で検索見つかったら選択
        Worksheets("sheet1").Range("A:A").Find(what:=clickD).Select
        Exit Sub
owari:
    '見つからなかったメッセージ
        MsgBox "該当する日付が見つかりません。"
 
End Sub

 


EXCEL2000 VBA シート選択されたらツールバーを表示する 実験 [Excel2000 VBA独習]

EXCEL2000 VBA  シート選択されたらツールバーを表示する 実験

 

 

Option Explicit

'シートがアクティブになったら、図形描画ツールバーを表示
Private Sub Worksheet_Activate()
    Application.CommandBars("Drawing").Visible = True
End Sub

'シートがアクティブでなくなったら、図形描画ツールバーを非表示
Private Sub Worksheet_Deactivate()
    Application.CommandBars("Drawing").Visible = False
End Sub
 

 


タグ:Excel2000 VBA

EXCEL2000 VBA シートのシェイプを中央揃いにする 実験 [Excel2000 VBA独習]

EXCEL2000 VBA  シートのシェイプを中央揃いにする 実験

 

Excel_shape_center_01.png

Excel_shape_center_02.png
マクロを図形描画ツールバーに登録
方法は、マクロボタンを図形描画ツールバーにドラッグ&ドロップ

Excel_shape_center_03.png

 

 

 
Sub シートのシェイプを中央揃い2()
'
' フローチャートを作成に便利?
'Shift+右クリックで選択したシェイプを中央揃い
On Error GoTo owari
 
    Selection.ShapeRange.Align msoAlignCentersFalse
 
owari:
End Sub
 
 
Sub シートのシェイプを中央揃い()
'
' フローチャートを作成に便利?
'
' シートのシェイプを全て選択
    ActiveSheet.Shapes.SelectAll
'中央揃いに
    Selection.ShapeRange.Align msoAlignCentersFalse
End Sub

 


タグ:Excel2000 VBA

EXCEL2000 VBA 複数の画像ファイルをシートに挿入する 実験 [Excel2000 VBA独習]

EXCEL2000 VBA  複数の画像ファイルをシートに挿入する 実験

 

 

Sub 複数画像挿入()
'ダイアログを開き複数のファイルを選択して画像を挿入する
'画像はセル幅に合わせる
 
   Dim myPic                '画像ファイル
   Dim myRange As Range '画像を配置する範囲
   Dim rX As Double
   Dim rY As Double
   Dim i As Long
   Dim SrowCont As Long
 
    On Error GoTo owari     'キャンセルが押されたら
 
'画像ファイルを複数選択 True指定
    myPic = Application.GetOpenFilename("画像ファイル,*.jpg;*.jpeg;*.gif;*.tif;*.png", , , , True)
'選択範囲を調べる
    Set myRange = Selection 'このセル範囲に収まるように画像を縮小する
    SrowCont = Selection.Rows.Count  '選択範囲行数
 
'画面の描画停止
    'Application.ScreenUpdating = False
 
'選択した画像ファイル数だけループ
 
    For i = LBound(myPic) To UBound(myPic)
    '画像サイズ
        With ActiveSheet.Pictures.Insert(myPic(i)).ShapeRange
            rX = myRange.Width / .Width      'セルの幅と読み込んだ画像の比率 横比率
            rY = myRange.Height / .Height       'セルの幅と読み込んだ画像の比率 縦比率
                 If rX > rY Then
                .Height = .Height * rY
                Else
                 .Width = .Width * rX
                End If
 
            .Left = .Left + (myRange.Width - .Width) / 2 '写真を横方向の中央に配置
            .Top = .Top + (myRange.Height - .Height) / 2 '写真を縦方向に中央に配置
        End With
         '挿入する画像の位置を下に移動(1行分を足す)
            ActiveCell.Offset(SrowCont + 1).Activate
    Next i
'画面描画
    Application.ScreenUpdating = True
owari:
End Sub
 
 

 


タグ:Excel2000 VBA

EXCEL2000 VBA シートの画像のみ削除する 実験 [Excel2000 VBA独習]

EXCEL2000 VBA  シートの画像のみ削除する 実験

 

 
Sub シートの画像のみ削除する()
'シートの画像のみ削除する
    ActiveSheet.Pictures.Delete
End Sub

タグ:Excel2000 VBA

Excel2000VBA 選択範囲の空白セルに移動する。 実験 [Excel2000 VBA独習]

Excel2000VBA 選択範囲の空白セルに移動する。 実験

 

 
Sub 選択範囲空白セルに移動()
'選択範囲の空白セル(数式が設定せれたない)を選択する
'For Each In(ステートメント) で選択範囲を順番に調べる
'HasFormula(プロパティ) で数式が設定せれているか調べる。返り値 True False Null
'ActiveWindow.ScrollRow でスクロール
 
    Dim myR As Range
 
    On Error GoTo owari
 
'For Each In で選択範囲を順番に調べ、空白で(and)数式の無いセルを選択し終了
    For Each myR In Selection
        If myR.Value = "" And myR.HasFormula = False Then myR.SelectActiveWindow.ScrollRow = myR.Row - 15: Exit Sub
    Next myR
'空白セルがなかったら、メッセージ
    MsgBox "選択範囲に未記入セルは有りません。": Exit Sub
'スクロールエラー対策 ActiveWindow.ScrollRow = myR.Row - 15がマイナスになった時のエラー対策
owari:
    If Err.Number = 1004 Then myR.Select
End Sub
 

 

 


EXCEL2000 VBA セル結合を解除する。 [Excel2000 VBA独習]

EXCEL2000 VBA  セル結合を解除する。

 

ExceLmargeCELLFalse.png

複数のセル結合を一度に解除できる。


Sub 結合セル解除()
 
    Selection.MergeCells = False
 
End Sub



 
 
選択範囲のセル結合と文字結合
 
Sub 選択範囲のセル結合()
' セルの結合時に文字も結合してセンタリングする
'警告出さない
    Dim sRangenew_range As Range
    Dim new_str As String
    Dim sRowsColumn As Long
 
    '結合後のセル行列番号
        sRow = Selection.Row
        sColumn = Selection.Column
    '選択範囲の文字列結合
        For Each sRange In Selection
            new_str = new_str & sRange & " "  '空白は必要なければ削除
        Next
    '警告を非表示
        Application.DisplayAlerts = False
    'セルの結合
        Selection.Merge
    '結合セルに結合文字を設定とセンタリング
        With Cells(sRowsColumn)
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlCenter
        End With
        Cells(sRowsColumn) = new_str
    '警告の表示を有効
        Application.DisplayAlerts = True
End Sub


タグ:Excel2000 VBA

EXCEL2000 VBA 選択範囲に合わせて画像の挿入 実験 [Excel2000 VBA独習]

EXCEL2000 VBA  選択範囲に合わせて画像の挿入 実験

参照サイト ttp://worldcafe-emanon.blogspot.jp/2011/06/excel.html

シートイベントじゃなく、汎用性のあるマクロに書き換えた。(シートイベントでも利用価値はある)

 

 

Option Explicit

 
Sub 選択範囲に合わせて画像挿入()
'下の改造
'ttp://worldcafe-emanon.blogspot.jp/2011/06/excel.html
 
   Dim myPic                '画像ファイル
   Dim myRange As Range '画像を配置する範囲
   Dim rX As Double
   Dim rY As Double
 
    On Error GoTo owari     'キャンセルが押されたら
 
'画像ファイルを選択
    myPic = Application.GetOpenFilename("画像ファイル,*.jpg;*.jpeg;*.gif;*.tif")
    Set myRange = Selection 'このセル範囲に収まるように画像を縮小する
 
'画面の描画停止
    'Application.ScreenUpdating = False
 
'画像サイズ
    With ActiveSheet.Pictures.Insert(myPic).ShapeRange
        rX = myRange.Width / .Width         'セルの幅と読み込んだ画像の比率 横比率
        rY = myRange.Height / .Height       'セルの幅と読み込んだ画像の比率 縦比率
            If rX > rY Then
                .Height = .Height * rY
              Else
                 .Width = .Width * rX
            End If
 
        .Left = .Left + (myRange.Width - .Width) / 2 '写真を横方向の中央に配置
        .Top = .Top + (myRange.Height - .Height) / 2 '写真を縦方向に中央に配置
    End With
'画面描画
    Application.ScreenUpdating = True
owari:
End Sub

EXCEL2000 VBA 選択範囲の文字列からスペースを取り除く 実験 [Excel2000 VBA独習]

EXCEL2000 VBA  選択範囲の文字列からスペースを取り除く 実験

 

 
Sub 選択範囲の文字列からスペースを取り除く()
'選択範囲の文字列からスペースを取り除く
    Dim myR As Range
        For Each myR In Selection
            myR = Replace(myR, " ", "")             '半角スペースを””にReplaceで置換
            myR = Replace(myR, " ", "")            '全角スペースを””に
        Next myR
End Sub

 
表示を止めて高速化
 
Public Sub スペースを取り除く()
'選択範囲の文字列からスペースを取り除く
    Dim myR As Range
 
    '画面の描画を停止
        Application.ScreenUpdating = False
 
        For Each myR In Selection
            myR = Replace(myR, " ", "")             '半角スペースを””にReplaceで置換
            myR = Replace(myR, " ", "")            '全角スペースを””に
        Next myR
 
    '画面の描画
        Application.ScreenUpdating = True
End Sub



タグ:Excel2000 VBA

EXCEL2000 VBA 「入力、数式」の有るセルを選択出来ないようにする。実験 [Excel2000 VBA独習]

EXCEL2000 VBA 「入力、数式」の有るセルを選択出来ないようにする。実験

背景色が黄色のセルは数式が設定されている。

ExcelVBA_sheetCode_01.png

ExcelVBA_sheetCode_02.png

 

'入力有るセル、数式の有るセルを選択したら移動する
'数式の場合は右に移動、入力が有れば下に移動
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo owari
If Target.HasFormula = True Then ActiveCell.Offset(0, 1).Select
If Target <> "" Then ActiveCell.Offset(1, 0).Select
owari:
End Sub

 

解除はシートイベントを無効にする。
関連記事  http://telstar.blog.so-net.ne.jp/2011-09-06

 


タグ:Excel2000 VBA
前の16件 | - Excel2000 VBA独習 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。