●「/」区切りで、複数のデータの属性値が1列に記載されている場合、個々の属性に分割するマクロ


<サンプルデータ>
※下記を、B列4行目にペースト。
/青木
北海道出身
12歳
男
/赤城
青森出身
25歳
免許証あり
女
/青山
10歳
女


<結果>
※マクロ実行すると、E列の7行目から右方向に、下記の様に、分割出力される。
/青木/赤城/青山
北海道出身青森出身10歳
12歳25歳
免許証あり 
  

マクロ
Option Explicit



Sub Splite_BlankRow()


Dim myTargetRow As Long
Dim myTargetCol As Long
Dim myTargetStartRow As Long
Dim myTargetStartCol As Long
Dim myTargetEndRow As Long
Dim myTargetEndCol As Long

Dim myWriteRow As Long
Dim myWriteCol As Long
Dim myWriteStartRow As Long
Dim myWriteStartCol As Long
Dim myWriteEndRow As Long
Dim myWriteEndCol As Long

Dim mySplitFlag As Boolean


myTargetCol = 2            '★処理対象の列番号を指定。
myTargetStartRow = 4       '★処理対象の行(開始行)番号を指定。
myTargetEndRow = 9999      '★処理対象の行(終了行)番号を指定。

myWriteStartRow = 7        '★処理したものを出力する行(開始行)番号を指定。
myWriteStartCol = 5        '★処理したものを出力する列(開始列)番号を指定。
myWriteEndRow = 20         '★処理したものを出力する行(終了行)番号を指定。
myWriteEndCol = 200        '★処理したものを出力する列(終了列)番号を指定。



Cells(2, myWriteStartCol).Clear
Cells(3, myWriteStartCol).Clear
Cells(3, myWriteStartCol).Value = "マクロ実行開始時刻:" & Now
Cells(4, myWriteStartCol).Clear


myWriteRow = myWriteStartRow
myWriteCol = myWriteStartCol

'前回の出力済み結果をクリア
Range(Cells(myWriteStartRow, myWriteStartCol), Cells(myWriteEndRow, myWriteEndCol)).Clear


mySplitFlag = False

For myTargetRow = myTargetStartRow To myTargetEndRow
    Cells(2, myWriteStartCol).Value = "処理中行番号:" & myTargetRow - (myTargetStartRow - 1)
    
    '対象セルが空白でない場合
    If Cells(myTargetRow, myTargetCol).Value <> "" Then
    
      '対象セルの先頭が、「/」でない場合
      If InStr(1, Cells(myTargetRow, myTargetCol).Value, "/") <> 1 Then
      
        Cells(myWriteRow, myWriteCol).Value = Cells(myTargetRow, myTargetCol).Value
        myWriteRow = myWriteRow + 1
        mySplitFlag = False
        
      '対象セルの先頭が、「/」の場合
      Else
        mySplitFlag = True
        
        If myWriteRow <> myTargetStartRow Then
          
          '出力先の列を1つ右の列にして、また、出力先の列を先頭行にする。
          myWriteCol = myWriteCol + 1
          myWriteRow = myWriteStartRow
        End If
        
        Cells(myWriteRow, myWriteCol).Value = Cells(myTargetRow, myTargetCol).Value
        myWriteRow = myWriteRow + 1
        
      End If
        
    '対象セルが空白の場合
    Else
      Exit For
    End If
    
Next myTargetRow

Cells(4, myWriteStartCol).Value = "マクロ実行完了時刻:" & Now

End Sub



コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

▼当HP内検索▼

▼メインメニュー▼



管理者用リンク
書籍(技術書)
・利用ソフト一覧
・Ethereal/Wireshark

転送速度




・powershell

・VBA










・Microsoft SQLserver








●CentOS6.9


▼動画サーバ関係

MP3について
DVDからのMP3変換について?
DVDからの動画変換について



▼自転車関係
・Panasonic CRAZY BOY

▼自動車関係
・SUZUKI エブリワゴンDA62W


▼Linux/Unix関係
・Linux基礎(パッケージ)
・Linux基礎(システム構成)
・Linux(Debian)基本コマンド
・Linuxコマンド(テキスト処理)
・Linuxコマンド(未整理)
・Linuxコマンド(ネットワーク系)
・FedoraCore OS メモ
・Debian Linux OS メモ
・Vine Linux OS メモ
・xPUD メモ

・CentOS6.4(minimal)


・solaris9 メモ
・solaris10 メモ

▼CCNA関係


▼ノートPC関連

液晶パネル

Fujitsu FMV-820MT
・Compaq Evo Notebook N110
・Panasonic Let's note CF-S51R
・Toshiba Dynabook Satellite 1800


▼デスクトップPC関連
・AOpen AX3S Pro-U
・ASUS CUSL2
・ASUS CUSL2-M


▼携帯電話
・NTT DoCoMo FOMA M1000
・FOMA P704iμ


▼モデム関連
▼ADSLモデム
・NTT ADSLモデム-NV
・NEC PA-WD605CV
・NEC PA-WD701CV
▼アナログモデム
・GVC F-1156IV/R9

▼ルータ関連
▼ルータ
・OMRON MR504DV
・FON La Fonera FON2100E
・Cisco Cisco2620
・Cisco4500M
・Cisco1601
  Cisco1603-R
  Cisco1605

・Cisco 共通メモ

・BUFFALO BLR3-TX4L
・I・O DATA NP-BBR
・NEC PA-WB7000/B (AtermWB7000H)
・マイクロ総研 NetGenesis OPT
・Persol PBR001

・YAMAHA NetVolante RTA54i
・FUJITSU NetVehicle-I

▼イーサネットコンバータ関連
・LINKSYS WET11

▼TA関連
・NEC AtermIT60D1L(S)

▼ハブ関連
・Cisco Catalyst 2924-XL-EN
・AlliedTelesis CentreCOM8216XL2
・BUFFALO LSW10/100-8
・corega FSW-5PM
・corega HUB-5PM
・CONTEC RT-1216S

▼NIC関連
・BUFFALO WLI-U2-SG54HP
・PLANEX GW-NS54GMX
・NTT-ME MN SS-LAN CARD 11 HQ

▼プリンタサーバ関連
・corega Pserver
・I・O DATA PLANT ET-FPS1E

▼デジカメ関連
・MINOLTA DiMAGE F100

▼携帯電話ケーブル関連
・BUFFALO IGM-UPDC
・OMRON ME64KTID
・OMRON ME96KTI
・SOURCENEXT SUS-USB-02 REV.1
・UP12 USB-PDC Converter
・DAISO D106

▼その他PC周辺機器
●キーボード
・Bluetoothキーボード BK3001BA
●ハンディターミナル
・ENSO BHT-6500
●ダウンスキャンコンバータ
・SC-TVEX
●CD-ROMドライブ
・NEC CD-2800D
・BUFFALO CDN-D24EX
・BUFFALO DVM-RDM16IU2
●MOドライブ
・ELECOM LMO-230-S
・FUJITSU MCF3064SS
・FUJITSU SMB-640WL2
●スピーカー
・Justy JSP-10W
●MP3プレーヤ
・SanDisk sansa e130
・NHJ V@mp VP-415
●インタフェースカード
・玄人志向 USB2.0+1394a-CB
・nbj IDE-3525
・Notebook Power Sharing
●ACアダプタ
・Universal AC Adaptor
●マウス
・Logitec Marble Mouse
・needs progres TN-30RFMOSG
●タブレット
・WACOM FAVO(ET-0405-U)
●その他
・IDEAL ME-320X(ME-320U2F)
・KY-05046S-12-H
・LifeView USB CapView
・ハードウェア(その他)
●シリアルレベルコンバータ
・シリアルレベルコンバータ


▼Windows系メモ
・DOS起動ディスク
・Microsoft OS メモ
・Microsoft 系ソフト メモ
・その他 ソフトウェアメモ
・Network Notepad
・Packet Tracerメモ
・パノラマ写真作成ソフト
・トラブル対処履歴


▼プログラミング関連
・言語比較
・VBS
・卒研事前メモ
・卒研メモ
・Windowsプログラミング
・JANコード・ISBNコード相互変換
●C言語
・文字列
・ファイル操作
●アルゴリズム
・再帰アルゴリズム
●JAVA
・Javaプログラミング
●その他
・初心者プログラミング
・ソフトウェア未整理メモ



▼家電関連
●テレビ
・SHARP AQUOS LC-20D10
・FUNAI TV-14CP
・BLUEDOT BTV-900K
・AKART AK-FTV913
・REAL LIFE JAPAN IQ-191LEDTV
AQUOS DZ3シリーズのDLNA機能
Viera V1シリーズのDLNA機能
●プロジェクタ
・crenova XPE470
●ビデオ
・FUNAI TV-14CP
●HDD&DVDレコーダ
・Toshiba RD-XS46
・NEC PK-AX10
●DVDプレーヤー
・GREEN HOUSER GH-PDV9AT
・情熱価格 DVDJ-DQ03
●メディアプレーヤー
・MINI HD MEDIA BOX 1080P
・1080P FULL HD Media Player
・1080P HD Media Player Mini 1080
・HD media player

●チューナー
・COMTEC DTW700
・HUMAX CI-S1

●アンテナ
・ADDZEST ZCP107
・マルハマ AGS-590

●ヘッドマウントディスプレイ
・VIRTUAL i/O i-glasses
●電動歯ブラシ
・ブラウン電動歯ブラシ
●電話機
・SHARP DA-C5-B
●コードレス電動ドリル、ドライバ
・BLACK&DECKER CSD300T
・RELIEF 30946?

▼カーナビ関係
Panasonic CN-GP510VD
Panasonic CN-G1100VD
▼カーステレオ関係
Kenwood U585SD

▼おもちゃ関連
●ラジコン
・ラジコンのプロポ改造


▼カー用品関連
●インダッシュTV
・ADDZEST TVS6250


▼DIY関連
・懸垂スタンド
・蓄光塗料


▼電子工作関係
・コネクタピンアサイン
・LANケーブルをAVケーブル化
・LANケーブルをRGBケーブル化
・地上デジタル放送アンテナ
・電子工作 メモ
・乾電池を充電


▼デザイン関連
●腕時計
・腕時計


▼その他

・HP製作関連メモ
・アイデアメモ

・コラム・メモ
・趣味・興味


・ToDo
・ネットインフラ?


▼資格・履歴書・マナー
・資格取得メモ
・工事担任者対策メモ
・履歴書・職務経歴書
・答辞


▼修学旅行 フランス(パリ)


▼掲示板
●掲示板
 意見・苦情・質問用に仮設置。

▼フリーエリア▼

▼おしらせ▼

管理人/副管理人のみ編集できます