のし書き作成 印刷テンプレート用のエクセルVBAを組み立てる

noshitempeyecatch

のし書き作成のための印刷テンプレートを作ります。
作成のために設定される項目はたくさんあります。
このたくさんの設定項目のために、組み立てるVBAコードが煩雑なものにならないように注意が必要です。

こんにちは、じゅんぱ店長(@junpa33)です。

 

この記事では、「のし書き作成エクセルソフト」の「設定」シートで選んだ、

「この、のし書きはこの形で」という

指定された項目の通りに作成できる様に、印刷テンプレートのVBAコードを組み立てていきます。

 

 

のし書き作成 印刷テンプレートの
エクセルVBAコードを組み立てる

 

実際に使う場合、その時々でのし書きの表書きや書式が変わりますので、

基本、幅広く対応できるエクセルVBAのコード組み立てが必要になってきます。

 

「〇〇の場合は✖✖」、「今回の〇〇は△△」とか、

条件分岐によって結果を変えることも必要になってきます。

また、書式様式の変更などによる、エクセルVBAコードの追加修正が必要になった場合のため、

メンテナンスが行い易いエクセルVBA構造にしておく必要もあります。

 

印刷テンプレートの作成のポイント

 

  • のしサイズによる条件分岐
  • → のしサイズ(5種類)による、エクセルVBAコードの5つを区別
  •   → のしサイズ別のコード設計
  •     → 印刷サイズ、印刷範囲指定
  •     → セル位置(印刷位置)設定
  •     → 贈り主表示位置
  •     → 贈り主併記位置処理
  •     → 文字フォント、サイズ、表示スタイル
  •     → プリントプレビュー

 

サイズ別のエクセルVBAコードの動作に移ってからは、

それぞれ指定された項目の実行のためのエクセルVBAは、パーツ化プロシージャーを呼び出しての実行にします。

つまり、

同じモジュールシート内ですが、それぞれのプロシージャーを跨いでの変数値の共有が必要になります。

 

ここの作業で設定する変数は、モジュール内(Module1)で共通して使えるようにします。

まずは、モジュールシート(Module1)の先頭に記述しておきます。

MEMO

ここから順番にコピーペーストで、Module1にコードを張り付けていくことで、この記事内容のコードが完了します。

コード

Option Explicit
  Dim SV As String, ONa(3) As String, ONS As String, KNa As String
  Dim FNa As String, Msei As String, FSia As Long, FSib As Long
  Dim Heiki As Long
  Dim Ra As Long, Ca As Long, Rb As Long, Cb As Long, RaP As Long

 

項目で指定した内容に対する動作は、その動作ごとにプロシージャーを設定します。

 

各プロシージャーのエクセルVBAの組み立て

 

要点
印刷用テンプレート作成の起動ボタン(コマンドボタン)に対応するプロシージャーは「熨斗テンプレートベースB」プロシージャーになります。

熨斗テンプレベースA プロシージャー

 

のし印刷テンプレートのベースづくりです。

のし書きBaseシートが存在しない場合は、Sheetタブの一番左位置に新しく作成します。

のし書きBaseシートの用紙設定を行います。

 

MEMO

With~End Withの使い方については、この記事を参考にしてください。

vbawithstateeyecatchWith~End Withの使い方。VBAコードを簡潔に記述する

 

コード

'のし印刷テンプレートのベースづくり
Sub 熨斗テンプレベースA()

'のし書きBaseシートが存在するかどうか
    Dim Sh As Worksheet
    Dim Flg As Boolean
        Flg = False
        For Each Sh In Worksheets        
            If Sh.Name = "のし書きBase" Then
                Flg = True
                Exit For
            End If            
        Next
        
 '存在しなければのし書きBaseシートを新規作成
        If Flg = False Then
                Worksheets.Add before:=Worksheets(1)
                ActiveSheet.Name = "のし書きBase"
        End If
        
'のし書きBaseシートをセットアップしていく
        Worksheets("のし書きBase").Activate
        
        With Worksheets("のし書きBase")
            .Rows("1:57").RowHeight = 13.5
            .Columns("A:BK").ColumnWidth = 2
            .Cells.MergeCells = False
            With .PageSetup
                .Orientation = xlLandscape
                .LeftMargin = Application.CentimetersToPoints(2)
                .RightMargin = Application.CentimetersToPoints(2)
                .TopMargin = Application.CentimetersToPoints(0.5)
                .BottomMargin = Application.CentimetersToPoints(0.5)
            End With            
        End With

End Sub

 

設定決め プロシージャー

 

それそれに設定した項目を変数に代入していきます。

 

MEMO

For~Nextの使い方については、この記事も参考にしてください。

fornextirekoeyecatchエクセルVBA!For~Nextの入れ子ループを最速に理解する

Offsetの使い方はこの記事を参考にしてください。

vbaoffseteyecatchエクセルVBA Offsetの使い方。セルや選択範囲を移動する

 

コード

Sub 設定決め()

    Dim k As Long
    
        Worksheets("設定").Activate
        
'熨斗サイズを変数に代入
        SV = Range("I25")
        
'送り主名入れ表書きを変数に代入
        Range("I27:I29").ClearContents
        Range("I27").Activate
        For k = 4 To 8        
            If Cells(k, 5).Value = True Then
                With ActiveCell
                    .Value = Cells(k, 6)
                    .Offset(1).Select
                End With
            End If
        Next k

        ONa(1) = Range("I27")
        ONa(2) = Range("I28")
        ONa(3) = Range("I29")

'贈り主名印字スタイル 縦位置を変数に代入
        ONS = Range("I31")
    
'慶弔名表書きを変数に代入
        KNa = Range("I33")
        
'文字フォント種を変数に代入
        If Range("I35") = "" Then
            FNa = "MS Pゴシック"
        Else
            FNa = Range("I35")
        End If
        
'文字の制御を変数に代入

        Msei = Range("I37")
        
        
'贈り主名併記を変数に代入
        If Range("I39") = "併記しない" Then
            Heiki = 1
        ElseIf Range("I39") = "2人併記" Then
            Heiki = 2
        ElseIf Range("I39") = "3人併記" Then
            Heiki = 3
        Else
            Heiki = 1
        End If
        
'文字フォントサイズを変数に代入
        If Range("I41") = "" Then
            FSia = 33
        Else
            FSia = Range("I41")
        End If
        If Range("I43") = "" Then
            FSib = 33
        Else
            FSib = Range("I43")
        End If

    Range("A1").Select

End Sub

 

熨斗テンプレートベースB プロシージャー

 

先に作成した熨斗テンプレートを、選択された用紙サイズ設定に合わせて調整していきます。

指定された用紙サイズ別のプロシージャーに動作が移っていきます。

コード

Sub 熨斗テンプレベースB()

    Call Module1.熨斗テンプレベースA
    
    With Worksheets("のし書きBase")
         .Range("A1:BK16").VerticalAlignment = xlCenter
         .Cells.ClearContents
'項目で選択されたフォントの種類をセットします
         .Cells.Font.Name = "" & FNa & ""
    End With
    
    Call 結び切り修正
        
    If SV = "A5サイズ" Then
        Call Module1.A5サイズ版
    ElseIf SV = "A4サイズ" Then
        Call Module1.A4サイズ版    
    ElseIf SV = "B5サイズ" Then
        Call Module1.B5サイズ版    
    ElseIf SV = "B4サイズ" Then
        Call Module1.B4サイズ版    
    ElseIf SV = "熨斗封筒" Then
        Call Module1.封筒版    
    End If
    
    Range("A1").Select

End Sub

 

文字印字位置、文字の制御のためのプロシージャー

 

文字の表示位置や配置については、それを設定するプロシージャーを呼び出して設定するようにします。

上詰め プロシージャー

 

コード

Sub 上詰め()
    With Worksheets("のし書きBase").Range("A17:BK57")
        .VerticalAlignment = xlTop
    End With
End Sub

 

中央揃え プロシージャー

 

コード

Sub 中央揃え()
    With Worksheets("のし書きBase").Range("A17:BK57")
        .VerticalAlignment = xlCenter
    End With
End Sub

 

下詰め プロシージャー

 

コード

Sub 下詰め()
    With Worksheets("のし書きBase").Range("A17:BK57")
        .VerticalAlignment = xlBottom
    End With
End Sub

 

両端揃え プロシージャー

 

コード

Sub 両端揃え()
    With Worksheets("のし書きBase").Range("A17:BK57")
        .VerticalAlignment = xlJustify
    End With
End Sub

 

均等割り付け プロシージャー

 

コード

Sub 均等割り付け()
    With Worksheets("のし書きBase").Range("A17:BK57")
        .VerticalAlignment = xlDistributed
    End With
End Sub

 

折り返し全体 プロシージャー

 

コード

Sub 折り返し全体()
    With Worksheets("のし書きBase").Range("A17:BK57")
        .ShrinkToFit = False
        .WrapText = True
    End With
End Sub

 

縮小し全体 プロシージャー

 

コード

Sub 縮小し全体()
    With Worksheets("のし書きBase").Range("A17:BK57")
        .WrapText = False
        .ShrinkToFit = True
    End With
End Sub

 

制御の設定なし プロシージャー

 

コード

Sub 制御の設定なし()
    With Worksheets("のし書きBase").Range("A17:BK57")
        .WrapText = False
        .ShrinkToFit = False
    End With
End Sub

 

贈り主縦位置 プロシージャー(文字印字位置)

 

「贈り主縦位置」で選択した項目内容を実行するプロシージャーです。

If条件文で条件によって結果を分岐させます。

コード

Sub 贈り主縦位置()

        Worksheets("設定").Select

'贈り主名印字スタイル 縦位置を変数に代入
        If ONS = "上詰め" Then
            Call 上詰め
        ElseIf ONS = "中央揃え" Then
            Call 中央揃え
        ElseIf ONS = "下詰め" Then
            Call 下詰め
        ElseIf ONS = "両端揃え" Then
            Call 両端揃え
        ElseIf ONS = "均等割り付け" Then
            Call 均等割り付け
        End If

End Sub

 

贈り主文字の制御 プロシージャー(文字の制御)

 

「贈り主文字の制御」で選択した項目内容を実行するプロシージャーです。

If条件文で条件によって結果を分岐させます。

コード

Sub 贈り主文字の制御()

        Worksheets("設定").Select

'贈り主名文字の制御を変数に代入
        If Msei = "折り返して全体を表示" Then
            Call 折り返し全体
        ElseIf Msei = "縮小して全体を表示" Then
            Call 縮小し全体
        ElseIf Msei = "" Then
            Call 制御の設定なし
        End If

End Sub

 

結び切り修正 プロシージャー

 

メッセージボックスを表示して、「結び切りののし紙かどうか」を確認します。

結び切を使わない場合は、贈り主の表示位置を下げる設定になります。

コード

Sub 結び切り修正()

    Dim Ans As Long
    
        Ans = MsgBox("結び切りのしを使いますか?", vbYesNo + vbQuestion, "確認")
        If Ans = vbNo Then
            If Heiki = 2 Then
                RaP = 2
            ElseIf Heiki = 3 Then
                RaP = 4
            Else
                RaP = 1
            End If
        Else
            RaP = 0
        End If

End Sub

 

複数併記スペース プロシージャー

 

贈り主の併記がある場合の印刷位置設定をします。

コード

Sub 複数併記スペース()

    With Worksheets("のし書きBase")
        .Activate
        .Cells.Orientation = xlVertical
'併記しない、1人の場合
                If Heiki = 1 Then
                
                        With Range(Cells(Ra, Ca), Cells(Rb, Cb))
                            .Merge
                            .Value = ONa(1)
                            .Font.Size = FSib
                        End With
 '2人併記の場合
                ElseIf Heiki = 2 Then
                
                        With Range(Cells(Ra + RaP, Ca - 2), Cells(Rb, Cb - 2))
                            .Merge
                            .Value = ONa(1)
                            .HorizontalAlignment = xlRight
                            .Font.Size = FSib
                        End With
                        With Range(Cells(Ra + RaP, Ca + 2), Cells(Rb, Cb + 2))
                            .Merge
                            .Value = ONa(2)
                            .HorizontalAlignment = xlLeft
                            .Font.Size = FSib
                        End With
 '3人併記の場合
                ElseIf Heiki = 3 Then
                    If SV = "熨斗封筒" Then
                        With Range(Cells(Ra + RaP, Ca), Cells(Rb, Cb))
                            .Merge
                            .Value = ONa(1)
                            .Font.Size = FSib
                        End With
                        With Range(Cells(Ra + RaP, Ca - 3), Cells(Rb, Cb - 3))
                            .Merge
                            .Value = ONa(2)
                            .HorizontalAlignment = xlRight
                            .Font.Size = FSib
                        End With
                        With Range(Cells(Ra + RaP, Ca + 3), Cells(Rb, Cb + 3))
                            .Merge
                            .Value = ONa(3)
                            .HorizontalAlignment = xlLeft
                            .Font.Size = FSib
                        End With
                    Else
                        With Range(Cells(Ra + RaP, Ca), Cells(Rb, Cb))
                            .Merge
                            .Value = ONa(1)
                            .Font.Size = FSib
                        End With
                        With Range(Cells(Ra + RaP, Ca - 4), Cells(Rb, Cb - 4))
                            .Merge
                            .Value = ONa(2)
                            .HorizontalAlignment = xlRight
                            .Font.Size = FSib
                        End With
                        With Range(Cells(Ra + RaP, Ca + 4), Cells(Rb, Cb + 4))
                            .Merge
                            .Value = ONa(3)
                            .HorizontalAlignment = xlLeft
                            .Font.Size = FSib
                        End With
                    End If
                End If
    
    End With
End Sub

 

のし紙サイズ別 プロシージャー

 

A5、A4、B4、B5、熨斗封筒 のそれぞれのサイズについて、それぞれに動作するプロシージャーを設計します。

A5サイズ版 プロシージャー

コード

Sub A5サイズ版()

    With Worksheets("のし書きBase")
'A5サイズにサイズセット
        .PageSetup.PrintArea = "A1:AG31"
        .PageSetup.PaperSize = xlPaperA5
    End With
    
'送り主表記セル位置を変数に代入
    Ra = 19
    Ca = 16
    Rb = 31
    Cb = 19
   
    With Range("P1:S12")
        .Merge
        .Value = KNa
        .Font.Size = FSia
        .ShrinkToFit = True
    End With
    Call 複数併記スペース
    Call 贈り主縦位置
    Call 贈り主文字の制御

'プリントプレビューを表示します
    Worksheets("のし書きBase").PrintPreview

End Sub

 

A4サイズ版 プロシージャー

コード

Sub A4サイズ版()

    With Worksheets("のし書きBase")
'A4サイズにサイズセット
        .PageSetup.PrintArea = "A1:AX46"
        .PageSetup.PaperSize = xlPaperA4
        
    End With
'送り主表記セル位置を変数に代入
    Ra = 28
    Ca = 24
    Rb = 45
    Cb = 27
 
    With Range("X2:AA19")
        .Merge
        .Value = KNa
        .Font.Size = FSia
        .ShrinkToFit = True
    End With
 
    Call 複数併記スペース
    Call 贈り主縦位置
    Call 贈り主文字の制御
        
'プリントプレビューを表示します
    Worksheets("のし書きBase").PrintPreview

End Sub

 

B5サイズ版 プロシージャー

コード

Sub B5サイズ版()

    With Worksheets("のし書きBase")
'B5サイズにサイズセット
        .PageSetup.PrintArea = "A1:AP39"
        .PageSetup.PaperSize = xlPaperB5
        
    End With
'送り主表記セル位置を変数に代入
    Ra = 25
    Ca = 20
    Rb = 38
    Cb = 23

    With Range("T2:W16")
        .Merge
        .Value = KNa
        .Font.Size = FSia
        .ShrinkToFit = True
    End With
 
    Call 複数併記スペース
    Call 贈り主縦位置
    Call 贈り主文字の制御
    
'プリントプレビューを表示します
    Worksheets("のし書きBase").PrintPreview

End Sub

 

B4サイズ版 プロシージャー

コード

Sub B4サイズ版()

    With Worksheets("のし書きBase")
'B4サイズにサイズセット
        .PageSetup.PrintArea = "A1:BK57"
        .PageSetup.PaperSize = xlPaperB4
         
    End With
'送り主表記セル位置を変数に代入
    Ra = 35
    Ca = 30
    Rb = 56
    Cb = 33

    With Range("AC2:AH22")
        .Merge
        .Value = KNa
        .Font.Size = FSia
        .ShrinkToFit = True
    End With
 
    Call 複数併記スペース
    Call 贈り主縦位置
    Call 贈り主文字の制御
        
'プリントプレビューを表示します
    Worksheets("のし書きBase").PrintPreview

End Sub

 

封筒版 プロシージャー

コード

Sub 封筒版()

    With Worksheets("のし書きBase")
'B4サイズにサイズセット
        .PageSetup.PrintArea = "A1:BK57"
        .PageSetup.PaperSize = 267
        .PageSetup.Orientation = xlPortrait
        
    End With
'送り主表記セル位置を変数に代入
    Ra = 24
    Ca = 4
    Rb = 38
    Cb = 6

    With Range("D2:F15")
        .Merge
        .Value = KNa
        .Font.Size = FSia
        .ShrinkToFit = True
    End With
  
    Call 複数併記スペース
    Call 贈り主縦位置
    Call 贈り主文字の制御
    
'プリントプレビューを表示します
    Worksheets("のし書きBase").PrintPreview

End Sub

 

のし書き作成 印刷テンプレートの
エクセルVBAコード まとめ

 

のし書き作成のための印刷用テンプレートについての

エクセルVBAコードの組み立て方法を説明してきました。

 

用紙サイズが5種類

表書き名が多種

贈り主が複数人を考慮

文字フォント、文字サイズを多種選択可能

等々

選択条件が多くありますので、VBAコードをどのようにまとめるかがポイントです。

 

考え方としては、

まず、指定された用紙サイズで、印刷用テンプレートを作成するという一連の大きな流れのVBAコードを、

用紙サイズごとにプロシージャーとしてまとめておきます。

別に、選択された項目に対応するVBAコードを、プロシージャーとして記述します。パーツ化しておきます。

 

指定された用紙サイズの作成プロシージャーの中で、

順番に、選択された指定項目に対応するパーツ化プロシージャーを呼び出し実行していく

という形で、テンプレートを完成させていきます。

 

これでテンプレートが完成し、プリントプレビューが表示されますので、

印刷ボタンを押せば完了です。

 

次回は、作成したのし書き印刷テンプレートシートを再利用できるようにするための

保存の方法についてエクセルVBAコードの説明をしたいと思います。

 

エクセルVBAの独習を始めるためのポイントについて vbastudyeyecatchエクセルVBAを独学で習得するためのポイントは?良書との出会いは重要 基礎知識習得のためのオンライン学習講座の参考記事 Udemy1eyecatchエクセルVBA初級者がUdemyで動画学習する講座おすすめ5選と無料講座の上手な使い方。
  今回の記事はここまでです。
最後までご覧いただき有難うございました。

 

MEMO

のし書き作成エクセルソフトのダウンロードは、こちら↓の記事から行うことが出来ます。

nishigakieyecatch無料ダウンロード のし書き作成エクセルソフト!既製のし紙が使えます

 

のし書き作成エクセルのそのほかの記事はこちら

nishigakieyecatch
今回は、慶弔の贈り物に必要になる、のし書きについてです。 エクセルVBAを使った、既製ののし紙に文字を表書き印刷できる「のし書き作成エクセルソフト」についてです。 作成に必要な項目を指定するだけで、簡単に表書き文字を印字することが出来ます。 ...
続きを読む
nishigakisyousaieyecatch
のし書き作成のエクセルVBAコードを組み立てていきます。 今回は詳細設定シート編です。 シートを直接的に加工して作表するのではなく、作表をVBAから行うことで何度でも初期状態にリセットすることが出来ます。 こんにちは、じゅんぱ店長(@jun ...
続きを読む
noshigakisyousai2eyecatch
「のし書き作成エクセルソフト」のVBAコード組み立ての解説を行っています。 今回は、選択項目の選択方法でシート上にコントロールを配置します。 ユーザーフォームを設置しなくても利便性を上げることが出来ます。 こんにちは、じゅんぱ店長(@jun ...
続きを読む
noshitempeyecatch
のし書き作成のための印刷テンプレートを作ります。 作成のために設定される項目はたくさんあります。 このたくさんの設定項目のために、組み立てるVBAコードが煩雑なものにならないように注意が必要です。 こんにちは、じゅんぱ店長(@junpa33 ...
続きを読む
noshihozoneyecatch
のし書き作成の印刷テンプレートで、シートを保存するエクセルVBAコードを解説します。 作成したのし書きを再利用できるようにするためのものです。 毎回、同じものを作成しなくても大丈夫になります。 こんにちは、じゅんぱ店長(@junpa33)で ...
続きを読む

 

このサイトでよく使うVBAのコードのトピックを纏めています。

vbaintfixeyecatch
エクセルVBA関数で、数値の整数部分だけを分離します。 整数値取得のFix関数でなくInt関数の使用の場合でも、 他の関数との組み合わせで解決することが出来ます。 こんにちは、じゅんぱ店長(@junpa33)です。 今回のテーマは、数値の整 ...
続きを読む
vbarndeyecatch
エクセルVBAのRnd関数で乱数を取得します。 実用のためにはコードに簡単な加工をする必要があります。特に乱数値の整数化とRandomizeは必須です。 6.5兆通りのパスコードの生成方法も解説しています。 こんにちは、じゅんぱ店長(@ju ...
続きを読む
vbaroundupdowneyecatch
エクセルVBA 数値の切り上げ、切り捨てをするときには注意しなければいけません。 RoundUp関数とRoundDown関数を使う時に負の数が混在していると、そのままだと誤った計算結果になることがあります。 こんにちは、じゅんぱ店長(@ju ...
続きを読む
vbaroundeyecatch
エクセルVBAでも数値を四捨五入したい時は、Round関数を利用することが多いです。 Round関数の使い方はワークシートと同様ですが、ただ大きな注意点があります。 ここではその注意点も含めて使い方の説明を行います。 こんにちは、じゅんぱ店 ...
続きを読む
vbamaxminaveeyecatch
エクセルVBAで、ワークシート関数 Max・Min・Averageを利用して最大値・最小値・平均を求めます。 「簡単で短いエクセルVBAコード組み立て」を目指す上では、ワークシート関数は強い味方です。 こんにちは、じゅんぱ店長(@junpa ...
続きを読む
vbainsteeyecatch
InStr関数・InStrRev関数は、文字列操作系の関数の中でも最重要です。 この関数により指定の文字(列)の存在位置が取得できます。 そしてそれを目盛基準として、文字列操作をすることもできます。 こんにちは、じゅんぱ店長(@junpa3 ...
続きを読む
vbareplaceeyecatch
エクセルVBAで使える関数にReplace関数があります。 Replace関数は検索の文字列を指定の文字列に置換したり、削除したり出来ます。 利用価値の高い関数です。使い慣れておきましょう。 こんにちは、じゅんぱ店長(@junpa33)です ...
続きを読む
vbaselectcaseeyecatch
エクセルVBAで、必須の条件文。 その中の一つで、Select Case 条件分岐 ステートメントの使い方を説明します。 簡単なコード、可読性の向上が特徴のステートメントです。是非、知っておきましょう。 こんにちは、じゅんぱ店長(@junp ...
続きを読む
VBAValeyecatch
エクセルVBAのVal関数の使い方についてです。 「値を文字列型から数値型へ変換する」という機能があります。 データ型が不一致の場合、プログラムエラーでコード停止が発生することが良くあります。 こんにちは、じゅんぱ店長(@junpa33)で ...
続きを読む
VBAStringeyecatch
エクセルVBA String関数の使い方についてです。 「文字を指定した数だけ並べることが出来る」という機能の関数です。 この関数を使えば簡潔なコード記述で実行することが出来ます。 こんにちは、じゅんぱ店長(@junpa33)です。 今回は ...
続きを読む
vbajoineyecatch
エクセルVBAでJoin関数の使い方について説明します。 文字列を接続する関数ですが、 配列変数で文字列を要素化した時にはこれを使います。 また「区切り文字」も自由に設定できます。 こんにちは、じゅんぱ店長(@junpa33)です。 今回は ...
続きを読む
vbamideyecstch
エクセルVBAで文字列操作は、コード作成の中でも重要な部分です。 Mid・Right・Left関数は、その操作の中で重要な働きをする関数です。 文字列を切り出すこの関数の基本部分を説明します。 こんにちは、じゅんぱ店長(@junpa33)で ...
続きを読む
vbatrimeyecatch
Trim・RTrim・LTrimは文字列の端にあるスペースを取り除きます。 ちょっとのことですが、取り込みデータにスペースが付いていることでのエラーは発見修正が結構厄介です。 注意が必要です。 こんにちは、じゅんぱ店長(@junpa33)で ...
続きを読む
vbastrcstreyecatch
エクセルVBAで、Str関数とCStr関数に使い方とその違いについて説明します。 戻り値にちょっとした違いがあります。 使い方の違いでその後のコードの進行に影響が出ることがあり、なおざりにはできません。 こんにちは、じゅんぱ店長(@junp ...
続きを読む
vbaleneyecatch
Len関数の使い方ついて説明します。 エクセルVBAでプログラミングを行う時に、テキストデータを加工処理するには必須の関数です。 非常に有用な関数ですので、是非使えるようになっておきましょう。 こんにちは、じゅんぱ店長(@junpa33)で ...
続きを読む
VBACheckBoxeyecatch
エクセルシートで使う場合の、2種類あるチェックボックスの設置と使い方の違いを解説します。 一見簡単そうですが、 単純でない使い方をしたい時は、設置方法と設定方法を工夫する必要があります。 こんにちは、じゅんぱ店長(@junpa33)です。 ...
続きを読む
VBAOptionbuttoneyecatch
エクセルで書類を作成する時、項目を選択できるようにするのがオプションボタンです。 これには2種類あり、使い方にかかわる違いもあります。 詳しいオプションボタン設置方法と使い方のコツを解説します。 こんにちは、じゅんぱ店長(@junpa33) ...
続きを読む
vbamojisousaeyecatch
エクセルVBAコードで、ファイルの保存時に名前を付けて保存について、その時の年月日を付けたい時の設定方法についてです。 保存されたファイルがたくさん増えて行く中で、ファイルの判別で年月日を付けている(付けたいと思っている)人も多いでしょう。 ...
続きを読む
vbajyufukueyecatch
今回は、同じ項目を一つにまとめるためのエクセルVBAコードを紹介します。 多数銘柄の商品を複数の店で扱っている場合、商品銘柄集計表を作るには、商品銘柄の種類だけをリストにしないといけません。 こんにちは、じゅんぱ店長(@junpa33)です ...
続きを読む
vbafolderdeleteeyecatch
今回は、不要なフォルダをサクッと削除するエクセルVBAコードを紹介します。 削除の仕方は2つあります。VBA自身の機能を使うことと、FSOの機能を使うことの2つです。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAで、不 ...
続きを読む
vbadirkilleyecatch
今回は、フォルダに保存されている要らないファイルを削除するエクセルVBAコードを紹介します。 フォルダを開いて一つずつファイル名を確認して、ではなくて、コード実行一発でササッと完了します。 こんにちは、じゅんぱ店長(@junpa33)です。 ...
続きを読む
vbachdireyecatch
エクセルVBAのステートメントで「ChDir(チェインジディレクトリ)」というのがあります。 少々地味感のあるステートメントですが、この使い方のポイントを説明いたします。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAの ...
続きを読む
vbafindeyecatch001
今回は、データの検索方法で、エクセルVBAでできるメソッドについてです。 「FindとFindNextメソッド」の使い方と最速理解のコードの組み立て方を説明したいと思います。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルの検 ...
続きを読む
今回も、エクセルVBAで利用できるワークシート関数についてがテーマです。 この記事では、データナンバーなどから、その必要な値や数値を抽出する「Vloolup関数」について使い方を説明します。 こんにちは、じゅんぱ店長(@junpa33)です ...
続きを読む
vbaindexeyecatch001
今回も、エクセルVBAで利用できるワークシート関数についてがテーマです。 この記事では、データリストから必要な値や数値を取り出してくる「Index関数」について使い方を説明します。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセ ...
続きを読む
vbamatcheyecatch001
エクセルVBAで利用できる関数についてがテーマです。 今回は、データリストから必要な値や数値を取り出してくる「Match関数」について、使い方を説明します。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAでよく使うワーク ...
続きを読む
vbahairetu3eyecatch
エクセルVBAで変数を利用するとき、二次元配列変数を知っていれば何かと便利なことがあります。 今回はそんな配列変数をより実際に近い例題で説明していきます。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAのプログラムでは、 ...
続きを読む
vbahairetu2eyecatch
エクセルVBAで配列を利用する時、それに関わる関数やステートメントを利用すれば、 より簡潔にコードを作成することが出来ます。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBA 配列を扱うときに利用できる関数とステートメント ...
続きを読む
vbahairetueyecatch
エクセルVBAで変数を利用するとき、複数の同じ型で変数を設定したいときがあります。 そんな時、出番となるのが配列変数ということです。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAの1次元配列変数の使い方を説明します。 ...
続きを読む
vbabuttoneyecatch
エクセルVBAのプログラムを実行するのに、ワークシート上に設置したボタンのクリックでワンポチっとで行いたい。 そんなボタンの簡単設置方法を紹介します。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAで、シートにマクロ(プ ...
続きを読む
vbasumeyecatch
エクセルVBAで、羅列された数値の集計作業をパパッと熟していきたいときがありますよね。 それを簡単に行える方法としてSUM関数があります。今回はこのSUM関数の使い方についてです。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセ ...
続きを読む
vbainputboxeyecatch
エクセルVBAのプログラムで、利用者からの入力データを取り込んでコードを実行していくことがあります。 その簡潔な方法としてInputBoxがあります。今回はこのInputBoxの使い方についてです。 こんにちは、じゅんぱ店長(@junpa3 ...
続きを読む
vbalastcelleyecatch
エクセルVBAのプログラム作成で、入力データをその都度蓄積していく場合など、 既にデータの入っている最終セルの位置を調べたいという時が多くあります。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAのコード組み立てで、デー ...
続きを読む
vbawithstateeyecatch
エクセルVBAのコードの組み立てでは、視認性や可読性を上げるためにできるだけ記述を簡潔にしたいところです。 Withステートメントは、そういったコード記述を簡潔にする役割があります。 こんにちは、じゅんぱ店長(@junpa33)です。 エク ...
続きを読む
vbacleareyecatch
エクセルVBAでシートを再利用するために、一度内容すべてをクリアしたい時があります。 普通は、Clearメソッドを使ってクリア操作を行いますが・・・ こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAを組み上げる中で、シート ...
続きを読む
vbaoffseteyecatch
エクセルVBAで、セルやセルの選択範囲を移動させるのにOffsetプロパティがあります。 今回の「VBA最速で理解」は、この便利な「Offsetプロパティ」の使い方について説明します。 こんにちは、じゅんぱ店長(@junpa33)です。 エ ...
続きを読む
vbanameeyecatch
エクセルVBAで、アクティブセル、アクティブシート、アクティブブックという「現在参照中の・・・」というオブジェクトがあります。 今回の「VBA最速で理解」は、この「ActiveWorkbook」「ActiveSheet」「ActiveCel ...
続きを読む
vbaselacteyecatch
エクセルVBAで、そのコードを実行する先のオブジェクトに、フォーカスするためのメソッドに、「Select」と「Activate」があります。 今回は、このよく似た「Select」と「Activate」について説明します。 こんにちは、じゅん ...
続きを読む
vbavbekidoeyecatch
エクセルVBAを始めようとしたときに一番最初に戸惑うのが、「どうしたらVBAコードを書く表示画面になるのか?」だと思います。 今回は、この「どうしたら、その画面になるんだろう?」についての方法を説明します。 こんにちは、じゅんぱ店長(@ju ...
続きを読む
vbamsgboxeyecatch
エクセルVBAでユーザーフォームを使わなくても、簡単なユーザーとのやり取りならメッセージボックスでも可能です。 今回は、この「ユーザーへのメッセージや選択肢を提示する」ユーザーフォームについての説明をします。 こんにちは、じゅんぱ店長(@j ...
続きを読む
vbadoloopeyecatch
以前の記事でも書いたように、エクセルを使った業務で、「ループの処理」コードは重要な実行処理部分です。 今回は、このもう一つの「ループの処理」である「実行回数が限定されないループ処理」を行うコードについて説明します。 こんにちは、じゅんぱ店長 ...
続きを読む
vbafoldereyecatch
エクセルを使った業務で、「作成したファイルの保存」は作業の最後に必ず必要な部分です。 今回は、この「作成したファイルの保存」を行うための重要部分。保存先フォルダをVBAで指定する方法を説明します。 こんにちは、じゅんぱ店長(@junpa33 ...
続きを読む
vbasengeneyecatch
エクセルVBAのコード組み立てで使う変数。「この変数を使いますよ!」というのが「変数の宣言」です。 今回は、この変数の宣言についてです。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBA のコード組立ての中で、変数の宣言は ...
続きを読む
vbaifjyokeneyecatch
エクセルVBAのコード組み立てで最も必要な、最もよく使うメソッドの1つで「If~Then~Else」があります。 今回はこの「If~Then~Else」メソッドについて設定条件の絞り方のポイントを説明します。 こんにちは、じゅんぱ店長(@j ...
続きを読む
VBACopyeyecatch
エクセルVBAのコード組み立てで、よく使うメソッドの1つで「Copy」メソッドがあります。 今回はこの「Copy」メソッドの使い方を説明します。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAで、ワークシートのコピーをを ...
続きを読む
VBAGotoeyecatch001
エクセルVBAのコードで、Gotoステートメントは嫌われ系のグループにはいっています。 それでも、GotoがあるのでVBAコード組み立てがスムーズに、楽に、なる事も多いと言うのも事実です。 こんにちは、じゅんぱ店長(@junpa33)です。 ...
続きを読む
fornextirekoeyecatch
エクセルVBAのコード組み立てで、非常によく使うステートメントの一つにFor~Nextでのループ処理があります。 今回はこのFor~Nextステートメントの使い方を説明します。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルV ...
続きを読む

 

<記事内容についての告知>VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。