<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>変換 - プログラミングで遊ブログ</title>
	<atom:link href="https://lemon818.com/tag/%E5%A4%89%E6%8F%9B/feed/" rel="self" type="application/rss+xml" />
	<link>https://lemon818.com</link>
	<description>現役システムエンジニアが趣味でプログラミングする自由気ままなブログ</description>
	<lastBuildDate>Mon, 07 Jun 2021 15:46:20 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</generator>
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/>	<item>
		<title>Excelファイルを CSV 形式に変換する方法</title>
		<link>https://lemon818.com/excel-csv/</link>
		
		<dc:creator><![CDATA[Take]]></dc:creator>
		<pubDate>Mon, 07 Jun 2021 15:05:49 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[CSV]]></category>
		<category><![CDATA[エクセル]]></category>
		<category><![CDATA[ファイル]]></category>
		<category><![CDATA[変換]]></category>
		<guid isPermaLink="false">https://lemon818.com/?p=5782</guid>

					<description><![CDATA[Excelファイルを CSV形式に変換したい！ &#160; そんな悩みがあると思います。 Excel ファイルを CSV 形式に変換する方法はすごく簡単で Excel ファイルを保存するときに「ファイルの種類」に「CS…]]></description>
										<content:encoded><![CDATA[<div class="sc_frame_wrap solid yellow">
<div></div>
<div class="sc_frame "><strong><span style="color: #000000;">Excelファイルを CSV形式に変換したい！</span></strong></div>
</div>
<p>&nbsp;</p>
<p>そんな悩みがあると思います。</p>
<p>Excel ファイルを CSV 形式に変換する方法はすごく簡単で</p>
<p><strong>Excel ファイルを保存するときに「ファイルの種類」に「CSV」を選択すればOK</strong>です。</p>
<p>&nbsp;</p>
<div>
<p>この記事では、「<span style="color: #3366ff;"><strong>Excel ファイルを CSV 形式に変換する方法</strong></span>」と「<span style="color: #ff0000;"><strong>保存する上ので注意点</strong><span style="color: #000000;">」</span></span>についてもなるべくわかりやすく画像を使って説明します。</p>
<p>よければぜひご覧になってください。</p>
<p>&nbsp;</p>
<h2>Excel ファイルを CSV 形式に変換する方法</h2>
<p>それではExcel ファイルを CSV 形式に変換する方法について順に説明していきます。</p>
<p>まず「ファイル」タブをクリックします。</p>
<p><img fetchpriority="high" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/excel-csv1.png" alt="" width="386" height="396" class="aligncenter size-full wp-image-5785" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/excel-csv1.png 386w, https://lemon818.com/wp/wp-content/uploads/2021/06/excel-csv1-292x300.png 292w" sizes="(max-width: 386px) 100vw, 386px" /></p>
</div>
<p>&nbsp;</p>
<p>その後、「名前をつけて保存」をクリックします。</p>
<p>&nbsp;</p>
<div>
<p><img decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/excel-csv2.png" alt="" width="481" height="628" class="aligncenter size-full wp-image-5786" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/excel-csv2.png 481w, https://lemon818.com/wp/wp-content/uploads/2021/06/excel-csv2-230x300.png 230w" sizes="(max-width: 481px) 100vw, 481px" /></p>
<p>&nbsp;</p>
<p>「名前を付けて保存」画面が表示されるので、</p>
<p>ファイルの種類を「CSV(コンマ区切り）（*.csv）」を選択して保存します。</p>
<p>&nbsp;</p>
<p><img decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/excel-csv3.png" alt="" width="921" height="812" class="aligncenter size-full wp-image-5787" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/excel-csv3.png 921w, https://lemon818.com/wp/wp-content/uploads/2021/06/excel-csv3-300x264.png 300w, https://lemon818.com/wp/wp-content/uploads/2021/06/excel-csv3-768x677.png 768w" sizes="(max-width: 921px) 100vw, 921px" /></p>
<p>&nbsp;</p>
</div>
<p>保存する前に、下記のようなメッセージが表示されますが、「はい（Y)」をクリックします。</p>
<p>&nbsp;</p>
<div>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/excel-csv4.png" alt="" width="514" height="139" class="aligncenter size-full wp-image-5788" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/excel-csv4.png 514w, https://lemon818.com/wp/wp-content/uploads/2021/06/excel-csv4-300x81.png 300w" sizes="auto, (max-width: 514px) 100vw, 514px" /></p>
</div>
<p>&nbsp;</p>
<p>すると下記のように「CSV形式のファイル」として保存されることが確認できます。</p>
<div>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/excel-csv5.png" alt="" width="676" height="543" class="aligncenter size-full wp-image-5789" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/excel-csv5.png 676w, https://lemon818.com/wp/wp-content/uploads/2021/06/excel-csv5-300x241.png 300w" sizes="auto, (max-width: 676px) 100vw, 676px" /></p>
</div>
<p>&nbsp;</p>
<h2>Excel ファイルをCSV ファイルに保存する上での注意点</h2>
<p>Excel から CSV ファイルに保存する上の注意点です。</p>
<p>これらは実際に検証した結果をもとにまとめたものです。</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap orange">
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid orange">
<ol>
<li>Excel のデザイン性は失われる</li>
<li>画像は保存できない</li>
<li>カンマ区切りでしか区切り文字は無理（CSV）</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>Excel のデザイン性とは、表や枠線の色やフォントサイズなどです。</p>
<p>これらは CSV ファイルで保存する上ではやむを終えない事象となります。</p>
<p>&nbsp;</p>
<p>また<span style="color: #ff0000;"><strong>画像も試しの保存しようとしてみましたが、無理</strong></span>でした。</p>
<p>また CSV ファイルなのでカンマ区切りの保存しか無理でした</p>
<p>（ CSV はそもそもカンマ区切りもファイル保存形式なので特に気にする必要もないとは思いますが、、、）。</p>
<p>&nbsp;</p>
<p>ですので、Excel ファイルを CSV形式 で保存する場合は上記注意点を踏まえて充分に注意する必要があります。</p>
<p>&nbsp;</p>
<div>
<h2>最後に</h2>
<p>&nbsp;</p>
<p>いかがでしたでしょうか？</p>
<p>この記事では、「<span style="color: #3366ff;"><strong>Excel ファイルを CSV 形式に変換する方法</strong></span>」と「<span style="color: #ff0000;"><strong>Excel ファイルを</strong></span><span style="color: #ff0000;"><strong>CSVファイルに</strong></span><span style="color: #ff0000;"><strong>保存する上ので注意点</strong><span style="color: #000000;">」</span></span>について解説しました。</p>
<p>&nbsp;</p>
<p>この記事が読者の何かのお役に立てれば幸いです。</p>
<p>ではでは。</p>
<p>&nbsp;</p>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Excel VBA】マトリックス形式から表形式に変換するマクロの作成方法！</title>
		<link>https://lemon818.com/matrix_table/</link>
		
		<dc:creator><![CDATA[Take]]></dc:creator>
		<pubDate>Sat, 28 Nov 2020 07:30:10 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[自作ゲーム]]></category>
		<category><![CDATA[Excel マクロ]]></category>
		<category><![CDATA[マトリクス]]></category>
		<category><![CDATA[マトリックス]]></category>
		<category><![CDATA[変換]]></category>
		<category><![CDATA[形式]]></category>
		<category><![CDATA[表]]></category>
		<guid isPermaLink="false">https://lemon818.com/?p=5338</guid>

					<description><![CDATA[どーも Takeです。 久々のブログ投稿です（さぼるにさぼってました笑）。 &#160; この記事ではマトリックス形式から表形式に変換するマクロの作成方法について簡単に解説します。 これはこのマクロが仕事で必要になったた…]]></description>
										<content:encoded><![CDATA[<p>どーも Takeです。</p>
<p>久々のブログ投稿です（さぼるにさぼってました笑）。</p>
<p>&nbsp;</p>
<p>この記事では<strong><span style="color: #3366ff;">マトリックス形式から表形式に変換するマクロ</span>の作成方法</strong>について簡単に解説します。</p>
<p>これはこのマクロが仕事で必要になったため、自分用に作りました。</p>
<p>&nbsp;</p>
<p>もしよければ参考にしてみてください。</p>
<p>※ いつものようにつくったのも共有しときますので、よければどうぞ（ブック保護、シート保護はかかってます）。</p>
<p>&nbsp;</p>
<div class="button frame block green"><a class="midium" href="https://lemon818.com/wp/wp-content/uploads/2020/11/convertMatricToTabularData.xlsm">マトリックス形式→表形式に変換するマクロ</a></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>マクロの作り方</h2>
<p>&nbsp;</p>
<p>マトリックス形式から表形式に変換するマクロの作り方を簡単にざっくり説明します。</p>
<p>正直超簡単なので、安心してください。</p>
<p>順にシート構成、VBAのソースコードと説明します。</p>
<p>&nbsp;</p>
<h3>シート構成</h3>
<p>&nbsp;</p>
<p>シートは下記４シートから構成されます。</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap blue">
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid blue">
<ol>
<li>main ・・・マクロのフロントシート。これは実行ボタンを置いて説明を書いただけのシートです。</li>
<li>setting(非表示シート) ・・・ 「matrix」シートの設定を記述するシートです（マクロ内で自動記載されます）。</li>
<li>matrix ・・・ 入力シート。マトリックス形式のデータを登録するシートです。</li>
<li>table ・・・ 出力シート。表形式のデータが出力されるシートです。</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>シートの内容について説明します。</p>
<p>※ mainシートは特に重要でないため省きます。</p>
<p>&nbsp;</p>
<h4>「setting」シート</h4>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2020/11/mt2.png" alt="" width="537" height="214" class="aligncenter size-full wp-image-5353" srcset="https://lemon818.com/wp/wp-content/uploads/2020/11/mt2.png 537w, https://lemon818.com/wp/wp-content/uploads/2020/11/mt2-300x120.png 300w" sizes="auto, (max-width: 537px) 100vw, 537px" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="color: #ff0000;"><strong>「setting」シートは非表示シートのため中身が見れません。</strong></span></p>
<p>非表示にする理由として、値をいじられたくないからです。</p>
<p>このシートでは「matrix」シートの設定内容が Excel 関数で取得できるようになっています。</p>
<p>また Excel 関数が万が一消えたことを想定して Excel マクロ内で記述するように設定しています。</p>
<p>Excel 関数はこんな感じのことが書かれています。</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap blue">
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid blue">
<ol>
<li>A5 セル ・・・=IFERROR(MATCH("*?",INDEX(matrix!A:A&amp;"",0),0),0)</li>
<li>B5 セル ・・・ =IFERROR(COUNTA(matrix!A:A)+1,0)</li>
<li>C5 セル ・・・ =IFERROR(MATCH("*?",INDEX(matrix!1:1&amp;"",0),0),0)</li>
<li>D5 セル ・・・ =IFERROR(COUNTA(matrix!1:1)+1,0)</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>要は<span style="color: #3366ff;"><strong>「matrix」シートの列と行のデータのはじまりと終わりの位置情報</strong></span>（セルの何行目何列目か）を取得しているだけです。</p>
<p>&nbsp;</p>
<h4>「matrix」シート</h4>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2020/11/mt3.png" alt="" width="528" height="335" class="aligncenter size-full wp-image-5354" srcset="https://lemon818.com/wp/wp-content/uploads/2020/11/mt3.png 528w, https://lemon818.com/wp/wp-content/uploads/2020/11/mt3-300x190.png 300w" sizes="auto, (max-width: 528px) 100vw, 528px" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>「matrix」シートは<span style="color: #3366ff;"><strong>入力シート</strong></span>です。</p>
<p><span style="color: #ff0000;"><strong>注意点は列名、行名が入っている箇所のみデータが出力される点</strong></span>です。</p>
<p>上記の画面では、列名行名が入力されている赤枠しかデータ出力されないので注意が必要です。</p>
<p>&nbsp;</p>
<h4>「table」シート</h4>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2020/11/mt4.png" alt="" width="308" height="331" class="aligncenter size-full wp-image-5355" srcset="https://lemon818.com/wp/wp-content/uploads/2020/11/mt4.png 308w, https://lemon818.com/wp/wp-content/uploads/2020/11/mt4-279x300.png 279w" sizes="auto, (max-width: 308px) 100vw, 308px" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>「table」シートは<span style="color: #3366ff;"><strong>出力</strong><strong>シート</strong></span>です。</p>
<p>「matrix」シートに登録されたデータが出力されます。</p>
<p>まあ、それだけです。</p>
<p>&nbsp;</p>
<h3>ソースコード</h3>
<p>&nbsp;</p>
<p>作成したマクロのVBA ソースコードは下記になります。</p>
<p>長そうに感じますが、そんな難しい処理はしていません。</p>
<p>コードの簡単な解説はソースコードの下にします。</p>
<p>&nbsp;</p><pre class="crayon-plain-tag">' ##############################################
' # マトリックス形式から表形式に変更するマクロ
' ##############################################

' シート一覧
Const SHEET_MAIN As String = "main"
Const SHEET_MATRIC As String = "matrix"
Const SHEET_TABLE As String = "table"
Const SHEET_SETTING As String = "setting"

' セル情報
Const CELL_M_C_S As String = "A5"
Const CELL_M_C_E As String = "B5"
Const CELL_M_R_S As String = "C5"
Const CELL_M_R_E As String = "D5"

'メッセージ
Const MSG_ERROR01 As String = "「" &amp; SHEET_MATRIC &amp; "」シートに値を正しく入力してください"
Const MSG_AFTER As String = "「" &amp; SHEET_TABLE &amp; "」シートに出力されました！"

' メイン
Sub main()

    Dim ms As Worksheet
    Dim ts As Worksheet
    Dim ss As Worksheet
    
    Dim mData, mCol, mRow
    
    Call setting(ms, ss, ts)

    Call getMatrixData(mData, mCol, mRow, ms, ss)

    Call setTableData(mData, mCol, mRow, ts)
    
    Call aterSetting

End Sub

' 初期設定
Private Sub setting(ByRef ms, ByRef ss, ByRef ts)
    
    Set ms = Worksheets(SHEET_MATRIC)
    Set ts = Worksheets(SHEET_TABLE)
    Set ss = Worksheets(SHEET_SETTING)
    
    ss.Range(CELL_M_C_S) = "=IFERROR(MATCH(" &amp; """" &amp; "*?" &amp; """" &amp; ",INDEX(matrix!A:A&amp;" &amp; """" &amp; """" &amp; ",0),0),0)"
    ss.Range(CELL_M_C_E).Value = "=IFERROR(COUNTA(matrix!A:A)+1,0)"
    ss.Range(CELL_M_R_S).Value = "=IFERROR(MATCH(" &amp; """" &amp; "*?" &amp; """" &amp; ",INDEX(matrix!1:1&amp;" &amp; """" &amp; """" &amp; ",0),0),0)"
    ss.Range(CELL_M_R_E).Value = "=IFERROR(COUNTA(matrix!1:1)+1,0)"
  
    ts.Cells.ClearContents
    
End Sub

' マトリックスデータ取得
Private Sub getMatrixData(ByRef mData, ByRef mCol, ByRef mRow, ByRef ms, ByRef ss)

    Dim dStartCol, dStartRow
    Dim dEndCol, dEndRow
    
    dStartCol = ss.Range(CELL_M_C_S)
    dStartRow = ss.Range(CELL_M_R_S)
    dEndCol = ss.Range(CELL_M_C_E)
    dEndRow = ss.Range(CELL_M_R_E)
    
    If dStartCol = 0 Or dStartRow = 0 Or dEndCol = 0 Or dEndRow = 0 Then
    
        MsgBox MSG_ERROR01
        End
    
    End If
    
    mRow = ms.Range(ms.Cells(1, dStartRow), ms.Cells(1, dEndRow))
    mCol = ms.Range(ms.Cells(dStartCol, 1), ms.Cells(dEndCol, 1))
    mData = ms.Range(ms.Cells(dStartCol, dStartRow), ms.Cells(dEndCol, dEndRow))

End Sub

' 表形式に書き込み
Private Sub setTableData(ByRef mData, ByRef mCol, ByRef mRow, ByRef ts)

    Application.ScreenUpdating = False

    Dim idx, x, y

    y = 1
    idx = 1
    
    For Each c In mCol
        x = 1
        For Each r In mRow
            ts.Cells(idx, 1) = c
            ts.Cells(idx, 2) = r
            ts.Cells(idx, 3) = mData(y, x)
            idx = idx + 1
            x = x + 1
        Next r
        y = y + 1
    Next c

    Application.ScreenUpdating = True

End Sub

' 後処理
Private Sub aterSetting()
    
    Application.ScreenUpdating = False
    
    MsgBox MSG_AFTER

    Sheets(SHEET_MAIN).Select
    Range("A1").Select
    Sheets(SHEET_MATRIC).Select
    Range("A1").Select
    Sheets(SHEET_TABLE).Select
    Range("A1").Select
    
    Application.ScreenUpdating = True
    
End Sub</pre><p>
&nbsp;</p>
<p>ソースコードでは下記のような処理を順にしています。</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap blue">
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid blue">
<ol>
<li>メイン処理(main) ・・・ ただのメイン処理、ここに下記関数を順に実行しています。</li>
<li>初期設定（setting） ・・・ 「table」シートの初期化、シート名の設定、「setting」シートに関数を埋め込みます。</li>
<li>マトリックスデータ取得（getMatrixData） ・・・ 「matrix」シートの値を取得して配列に格納しています。</li>
<li>表形式に書き込み（setTableData） ・・・ 「matrix」シートの値（配列）をループ文（for Each文）で「table」シートに書き込みます。</li>
<li>後処理（aterSetting） ・・・ 完了メッセージ、全シートを「A1」セルに選択してます。</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>これがすべてです。めちゃくちゃシンプルなやり方だと思います。</p>
<p>「よくわからん」と思った人もソースコードをよく見ればたぶんなんとかわかると思います（ざっくりですみません。。）</p>
<p>&nbsp;</p>
<h2>最後に</h2>
<p>いかがでしょうか？</p>
<p>&nbsp;</p>
<p>今回は<strong>マトリックス形式から表形式に変換するマクロ</strong>の作成方法をご紹介しました。</p>
<p>ブログ書くの楽しいですね。またなんか作ったら投稿します。</p>
<p>&nbsp;</p>
<p>なんか作ってほしいマクロがあれば「お問い合わせ」から問い合わせてください。</p>
<p>簡単そうなものならつくります。</p>
<p>ではでは。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
