すぐに役立つエクセルVBAマクロ集 - すぐマク
すぐに役立つ Excel VBA マクロ集 Excel VBA Macro
Macro
Google
 
Home |  What's New! |  Gallery |  Introduction |  Service |  Profile

500連発・組み方講座フォロー

Big Color Pallet

[広告]
 
Excel VBA Macro
Excel DownLoad
© 1997 - 2007
Yoshioh Nagai.
All RightsReserved.
HappyTech & Co., Ltd.
www.happy500z.com
Sample Macro  サンプルマクロ Previous Next
サンプルマクロ   1) 受信データ自動編集
2) 単位選択入力
3) コンボボックス
4) 同項目を1行に並べる


2) 単位選択入力 もくじへ 使用可能なExcelのバージョン
'=========================================================================================
'
' すぐに役立つエクセルVBAマクロ集    単位選択入力     ★ Copyright(c)1998 Yoshioh Nagai ★
'
'=========================================================================================
Option Explicit
Dim タイトル As String                          'メッセージボックスのタイトル
Dim メッセージ As String                        'メッセージボックスのメッセージ
Dim スタイル As Variant                         'メッセージボックスのスタイル
Dim yesno As Variant                            'メッセージボックスの返答
Dim 上 As Integer                               'シートの上端セルの行番号
Dim 左 As Integer                               'シートの左端セルの列番号
Dim 下 As Integer                               'シートの下端セルの行番号
Dim 右 As Integer                               'シートの右端セルの列番号
'=========================================================================================
Sub auto_open()                           'ブックが開かれたときに自動的に実行されるマクロ
    ユーザーが再表示できないようにDBシートを隠す
    Sheets("入出力").Select                     '画面に表示するシートを選ぶ
    入出力シートをクリアする
    Application.ScreenUpdating = False          '画面を更新しない
    タイトル = "選択"
    メッセージ = "インチ表示しますか?" & Chr(13) & "([いいえ] … メートル表示)"
    スタイル = vbYesNo + vbQuestion + vbDefaultButton1 + vbApplicationModal
    yesno = MsgBox(メッセージ, スタイル, タイトル)
    隠したDBシートをもどす
    If yesno = vbYes Then
        Sheets("入出力").Range("D1") = "インチ法"
        Sheets("MtoI").Select                   'シートを選択する
        シートの下端と右端を調べて範囲選択する
    Else
        Sheets("入出力").Range("D1") = "メートル法"
        Sheets("DB").Select
        シートの下端と右端を調べて範囲選択する
    End If
    入出力シートに複写する
    ユーザーが再表示できないようにDBシートを隠す
End Sub
'-----------------------------------------------------------------------------------------
Private Sub ユーザーが再表示できないようにDBシートを隠す()
    Sheets("DB").Visible = xlVeryHidden
End Sub
'-----------------------------------------------------------------------------------------
Private Sub 入出力シートをクリアする()
    Sheets("入出力").Select                     'シートを選択する
    上 = 2                                      '基点セルの行番号(A2セルの2)
    左 = 1                                      '基点セルの列番号(A2セルのAの数字表記)
    下 = Range(Cells(上, 左), Cells(上, 左)).End(xlDown).Row       '下端検出
    右 = Range(Cells(上, 左), Cells(上, 左)).End(xlToRight).Column '右端検出
    Range(Cells(上, 左), Cells(下, 右)).ClearContents '検出した範囲の数式と値をクリアする
    Range("D1") = ""                            'メートル法インチ法を表示するセルをクリア
    Range("A1").Select
End Sub
'-----------------------------------------------------------------------------------------
Private Sub シートの下端と右端を調べて範囲選択する()
    上 = 2
    左 = 1
    下 = Range(Cells(上, 左), Cells(上, 左)).End(xlDown).Row
    右 = Range(Cells(上, 左), Cells(上, 左)).End(xlToRight).Column
    Range(Cells(上, 左), Cells(下, 右)).Select  '検出した範囲を選択
End Sub
'-----------------------------------------------------------------------------------------
Private Sub 入出力シートに複写する()
        Selection.Copy                          'どちらかのシートからコピー
    Sheets("入出力").Select
        Range("A2").PasteSpecial Paste:=xlFormats '書式を貼り付け
        Range("A2").PasteSpecial Paste:=xlValues '値を貼り付け
        Range("A1").Select
End Sub
'=========================================================================================
Sub auto_close()                        'ブックが閉じられたときに自動的に実行されるマクロ
    Application.ScreenUpdating = False          '画面を更新しない
    タイトル = "確認"
    メッセージ = "作業結果をデータベースに反映しますか"
    スタイル = vbYesNo + vbQuestion + vbDefaultButton1 + vbApplicationModal
    yesno = MsgBox(メッセージ, スタイル, タイトル)
    If yesno = vbYes Then
        If Sheets("入出力").Range("D1") = "インチ法" Then
            Sheets("ItoM").Select               'インチをメートルに換算したシート
        Else
            Sheets("入出力").Select             'メートル法で入力されているシート
        End If
        シートの下端と右端を調べて範囲選択する
        DBシートに複写する
        Sheets("入出力").Select                 '次に開いたときに画面をちらつかせないため
        ActiveWorkbook.Save                     '上書き保存する
    Else
        Application.DisplayAlerts = False       '閉じる際に確認メッセージを出さない
        ActiveWorkbook.Close                    'ブックを閉じる
    End If
End Sub
'-----------------------------------------------------------------------------------------
Private Sub DBシートに複写する()
        Selection.Copy                          'どちらかのシートからコピー
    隠したDBシートをもどす
    Sheets("DB").Select
        Range("A2").PasteSpecial Paste:=xlValues '値を貼り付け
        Range("A1").Select
End Sub
'-----------------------------------------------------------------------------------------
Sub 隠したDBシートをもどす()                'Subとしたのはハンド操作でマクロの実行が可能に
    Sheets("DB").Visible = True
End Sub
'=========================================================================================
'  サンプルマクロ  単位選択入力   http://plaza18.mbn.or.jp/~Happy/   (C)1998.9.19   V1.0
'=========================================================================================
<コメント>
ダウンロード すれば実際に動かして試せます。