小技集

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ



2024年11月1日【ID:0】

メンバー限定

【ExcelVBA】空白を上に詰める


以下のような表で、空白行を除外して上に詰める場合、並べ替え機能を活用すると、書式の設定位置や要素の順番に関しても変わってしまいます。

今回は、書式の設定位置や要素の順番を変えずに、そのままの状態で上詰めする機能をVBAで開発する方法について解説していきます。
※こちらで開発したファイルは、記事に最後にて配布しています。


開発

初めに、[開発]タブの中の[マクロ]を選択します。

[マクロ]を選択すると表示される以下の画面に、開発する機能の名前を入力し、[作成]を選択します。
こちらで「上詰め」と入力しています。

[作成]を選択すると表示される以下のエディタ画面の「Sub 上詰め()」から「End Sub」の間にコードを記述していきます。
「Option Explicit」は、エディタの設定次第では表示されません。

では、以下のコードを記述します。

Sub 上詰め()

    Dim inData As Variant, outData As Variant
    inData = Range("B3:B11").Value
    ReDim outData(1 To UBound(inData), 1 To 1) 
    
    Dim d As Variant, i As Long: i = 1
    For Each d In inData
        If d <> "" Then 
            outData(i, 1) = d
            i = i + 1
        End If
    Next d
    
    Range("B3:B11").Value = outData
    
End Sub

解説

このコードについて、簡単に解説していきます。


続きはIT予備メンバー限定です。

メンバー限定コンテンツになります。




IT予備メンバーページと連携することで内容を確認することができます。

メンバーとは


すでにメンバーの方は、
ログインして連携してから、こちらを更新すると閲覧できます。
※連携しても確認ができない場合は、少し時間を置いてご確認ください。

ログイン(新しいタブ)
※[ログイン]→[設定]→[IT予備-連携]で連携できます


パソコンで開く場合は、記事の最後に「リンクコピー」があるためご活用ください。


メンバー募集
ExcelVBA学習ロードマップ配布 ExcelVBA学習ロードマップ配布





リンクの共有はこちらから行えます。

  リンクコピー Twitter Facebook はてなブックマーク Pocket
トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ


- 人気の記事 -



- メンバー限定 [一覧] -



サイト累計閲覧数

4634720

有料動画講座
(買い切り)

Excel完全制覇


ちょっとした機能 便利ツール

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ