2
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ひとり情シスに役立つVBAコードのサンプル

Last updated at Posted at 2019-05-07

ひとり情シスにも役立ちそうな Excel VBA のサンプルコード。

実行方法

  1. 新規Excelファイルのコードウィンドウ([Alt]+[F11]で起動)に貼り付けて保存。
  2. 対象シートをアクティブにし、[Alt]+[F8] でマクロを呼び出して実行する。

ファイル参照パスを一括変更

ファイルサーバの更改などで、サーバのホスト名やドライブレターが変わってしまった場合に使う。
VLOOKUPなどの関数式で別ファイルにリンクしているときでも一括で変更できる。

  • 変更前
    =VLOOKUP(B8, '\\ECSV31\人事総務部\[社員一覧.xls]Sheet1'!$A$3:$B$15, 2, FALSE)

  • 変更後
    =VLOOKUP(B8, '\\ECGSV01\人事総務部\[社員一覧.xls]Sheet1'!$A$3:$B$15, 2, FALSE)

Dim r As Range, str1 As String, str2 As String

If ThisWorkbook Is ActiveWorkbook Then
    MsgBox "シートが選択されていません", vbCritical
    Exit Sub
End If
    
Application.ScreenUpdating = False  ' 画面更新を停止
Application.DisplayAlerts = False   ' 確認メッセージを表示しない
    
For Each r In ActiveSheet.UsedRange
    str1 = r.Formula
    str2 = Replace(str1, "\\ECSV31\", "\\ECGSV01\", , , vbTextCompare)  ' 置換
        
    If str1 <> str2 Then r.Formula = str2
Next

Application.DisplayAlerts = True
Application.ScreenUpdating = True

無効な図形オブジェクトを一括削除

行や列の削除を繰り返していると、図形の幅や高さがゼロの無効なオブジェクトが残ってしまう場合がある。
Excelが重くなるだけなので一括で削除しよう。

Dim wb As Workbook, ws As Worksheet, shp As Shape

Set wb = ActiveWorkbook
If ThisWorkbook Is wb Then
    MsgBox "シートが選択されていません", vbCritical
    Exit Sub
End If

For Each ws In wb.Sheets
    ws.Select
    For Each shp In ws.Shapes
        If shp.Height = 0 And shp.Width = 0 Then shp.Delete
    Next
Next

セルの値が変わったら改ページ

機器管理資料などで、特定の列の値が変わったら改ページを挿入し、見易くするときに使う。

Dim ws As Worksheet, nRow As Long, nCol As Long, str As String

nRow = 28  ' チェック対象の開始行番号
nCol = 7   ' チェック対象の列番号

Set ws = ActiveSheet
Do Until ws.Cells(nRow, nCol) = ""
    If str <> ws.Cells(nRow, nCol) Then
        str = ws.Cells(nRow, nCol)
        ws.HPageBreaks.Add ws.Rows(nRow)
    End If
    nRow = nRow + 1
Loop
2
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?