Category Archives: Vba

弊社ではインターンを絶賛大募集しています!

 
154529369581
実践力が身に付く、超実践型インターン!! 
健康管理サービス『カラダノート』運営企業! 
★企画営業、★エンジニア、★デザイナー、★サービス運営担当 
株式会社プラスアール|短期バイト求人なら大学生アルバイト.com

 
Android担当エンジニアのインターンとして採用されれば、筆者である私とペアを組んで仕事することになります。 
その際には、就職活動のときや入社してからも即戦力として役立つ超実用的な9つのスキルを教えることを約束します! 
 
 

・JAVAを教えます

Android端末のアプリは、JAVAというプログラム言語で動作しています。 
JAVAはスマートフォンアプリ以外でも広く使われている言語で、アプリ開発を通じてJAVAを使いこなせるようになれば、幅広い業務に対応できます。 
関連記事) 
Activityにまたがってグローバルに変数などのオブジェクトを共有するには 
AndroidでWebViewアプリを作る[初心者向け] 
 
 

・PHPを教えます

・HTMLを教えます

・MYSQLを教えます

・Linuxを教えます

弊社はソーシャルアプリを多数リリース用しており、1つのサービスで1日の最大利用者数が5万に達したこともあります。 
PHP、HTML、MYSQLなどをマスターすれば、WEBサイトが開発できるようになり、アプリ開発だけでなく、WEBエンジニアとしての道も開けてきます。 
関連記事) 
Amimoto AMI 網元『から』別のサーバーにwordpressを移転するとき1 
AndroidアプリでUNIX timeを取得 
 
 

・FLASHを教えます

FLASHはWEBサイトやフィーチャーフォン(ガラケー)のサイトでよく利用されている技術です。 
ターゲットとする分野によっては今でも重要視され、簡単な動画編集などもできる専門性の高い技術です。 
関連記事) 
FlashLite1.1でアドベンチャーゲームをつくる 第1回 『タイプライター風に1文字ずつ文字を表示しよう シーン構成編』 
 
 

・PowerPointを教えます

企画や営業の際に必須になるのがPowerPointです。大学のレポート作りにも即役立つ、便利なツールです。 
PowerPointの使い方やちょっとしたコツを、実際に使われているドキュメントを通して教えます。 
 
 

・Excelを教えます

「正直言うとエクセルの使い方がよく解らない……」という人も多いと思います。 
実務では非常によく使われていますが、基本的な部分から教えていくので安心してください。 
また、関数やマクロといった、一歩進んだ使い方まで指導します。 
関連記事) 
Excelで書かれた「ふりがな付き文字列」をHTMLのタグに対応した文字列に自動で変換する 
 
 

・ギターを教えます!

実務とは全く関係ありませんが、ご希望とあらばギターを教えます! 
……あ、いらない? 
関連記事) 
『Golden Age vol.1』 開催決定!! 
 
 
 
自分の現状のスキルに全く自信がない、という方でも、まずはお気軽にオフィスに遊びに来てください! 温かくお迎えします! 
お待ちしていますm(_ _)m 

Excelには便利な機能があって、漢字にフリガナを振ってくれる機能があります。

1

エクセル画面で右クリックをして……

2

「ふりがなの表示」を押すと……

3

こんな感じで自動で振ってくれます。

ところで、HTMLのタグで、<ruby>タグというものを知っていますか?

ルビ(ふりがな)を付ける

HTMLページで、対応しているブラウザではルビを表示してくれるタグです。

例えば「今日」という単語をルビ付きで表示したいときは、

&amp;amp;amp;amp;amp;lt;ruby&amp;amp;amp;amp;amp;gt;今日&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;(&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rt&amp;amp;amp;amp;amp;gt;きょう&amp;amp;amp;amp;amp;lt;/rt&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;)&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;/ruby&amp;amp;amp;amp;amp;gt;

みたいに長ったらしく記述しなければなりません。

今回は、このExcelのルビをHTMLタグの記述に変換しようという試みです。

ぶっちゃけ大変でした。

最初は関数だけでなんとかなると思ってたんですが、結局ムリで、VBAでマクロ組むしかなかったです。

それでは、マクロのコードがこんな感じです。

Sub OutputScripts()

    '出力準備
    Dim pass As String
    pass = Left(ActiveWorkbook.FullName, Len(ActiveWorkbook.FullName) - Len(ActiveWorkbook.Name))
    pass = pass + &amp;amp;amp;amp;amp;quot;\output.txt&amp;amp;amp;amp;amp;quot;
    Open pass For Output As #1

    'セルを1文字ずつ検証
    Dim x As Integer
    Dim y As Integer
    For y = 2 To 3

        '出力用
        Dim output_text As String
        output_text = &amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;quot;

        For x = 2 To 4
            'セルのテキスト
            Dim cel_text As String
            cel_text = Cells(y, x)

            'ふりがなの数
            Dim furigana_count As Integer
            furigana_count = Cells(y, x).Phonetics.Count

            'もし0個なら
            If furigana_count = 0 Then
                'そのまま格納
                output_text = output_text &amp;amp;amp;amp;amp;amp; &amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;quot; &amp;amp;amp;amp;amp;amp; cel_text &amp;amp;amp;amp;amp;amp; &amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;quot;,&amp;amp;amp;amp;amp;quot;
            Else
                '検証文字の位置
                Dim pos As Integer
                pos = 1

                '変換後の文字列
                Dim update_text As String
                update_text = &amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;quot;

                'for文をまわす
                For daf = 1 To furigana_count
                    'ふりがなと位置と文字数取得
                    Dim start_num As Integer
                    Dim end_num As Integer
                    start_num = Cells(y, x).Phonetics(daf).start
                    end_num = Cells(y, x).Phonetics(daf).Length

                    '漢字以外の文字をきりとる
                    Dim other As Integer
                    other = start_num - pos
                    update_text = update_text &amp;amp;amp;amp;amp;amp; Mid(cel_text, pos, other)

                    'もとの漢字
                    Dim kanzi As String
                    kanzi = Mid(cel_text, start_num, end_num)
                    'ふりがな
                    Dim furigana As String
                    furigana = Cells(y, x).Phonetics(daf).Text

                    update_text = update_text &amp;amp;amp;amp;amp;amp; &amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;lt;ruby&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;quot; &amp;amp;amp;amp;amp;amp; kanzi &amp;amp;amp;amp;amp;amp; &amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;(&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rt&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;quot; &amp;amp;amp;amp;amp;amp; furigana &amp;amp;amp;amp;amp;amp; &amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;lt;/rt&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;)&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;/ruby&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;quot;

                    '位置記録
                    pos = start_num + end_num
                Next daf

                '残りの文字
                Dim nokori_num As Integer
                nokori_num = Len(cel_text) - pos + 1
                update_text = update_text &amp;amp;amp;amp;amp;amp; Mid(cel_text, pos, nokori_num)

                '変換して格納
                output_text = output_text &amp;amp;amp;amp;amp;amp; &amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;quot; &amp;amp;amp;amp;amp;amp; update_text &amp;amp;amp;amp;amp;amp; &amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;quot;,&amp;amp;amp;amp;amp;quot;
            End If
        Next x

        '出力
        Print #1, output_text

    Next y

    'ファイルクローズ
    Close #1

End Sub

xとyという変数で2重のfor文を回すことで、セルを順番に検証しています。
Cells(y, x).Phonetics(daf).start という記述で、フリガナが振られた漢字の位置が特定でき、
Cells(y, x).Phonetics(daf).Length という記述で、フリガナが振られた漢字数が特定できます。

あとは、文字列の切り取りや連結を駆使して、最終的に変換したい形へ近づけていくだけです。

このマクロを再生すると、こういうテキストファイルが生成されます。

4

&amp;amp;amp;amp;amp;quot;こんにちは! &amp;amp;amp;amp;amp;lt;ruby&amp;amp;amp;amp;amp;gt;今日&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;(&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rt&amp;amp;amp;amp;amp;gt;キョウ&amp;amp;amp;amp;amp;lt;/rt&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;)&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;/ruby&amp;amp;amp;amp;amp;gt;はいい&amp;amp;amp;amp;amp;lt;ruby&amp;amp;amp;amp;amp;gt;天気&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;(&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rt&amp;amp;amp;amp;amp;gt;テンキ&amp;amp;amp;amp;amp;lt;/rt&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;)&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;/ruby&amp;amp;amp;amp;amp;gt;ですね!&amp;amp;amp;amp;amp;quot;,&amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;lt;ruby&amp;amp;amp;amp;amp;gt;日差&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;(&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rt&amp;amp;amp;amp;amp;gt;ヒザ&amp;amp;amp;amp;amp;lt;/rt&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;)&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;/ruby&amp;amp;amp;amp;amp;gt;しが&amp;amp;amp;amp;amp;lt;ruby&amp;amp;amp;amp;amp;gt;温&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;(&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rt&amp;amp;amp;amp;amp;gt;アタタ&amp;amp;amp;amp;amp;lt;/rt&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;)&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;/ruby&amp;amp;amp;amp;amp;gt;かくて、とても&amp;amp;amp;amp;amp;lt;ruby&amp;amp;amp;amp;amp;gt;気持&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;(&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rt&amp;amp;amp;amp;amp;gt;キモ&amp;amp;amp;amp;amp;lt;/rt&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;)&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;/ruby&amp;amp;amp;amp;amp;gt;ちいい!&amp;amp;amp;amp;amp;quot;,&amp;amp;amp;amp;amp;quot;こんな&amp;amp;amp;amp;amp;lt;ruby&amp;amp;amp;amp;amp;gt;日&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;(&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rt&amp;amp;amp;amp;amp;gt;ヒ&amp;amp;amp;amp;amp;lt;/rt&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;)&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;/ruby&amp;amp;amp;amp;amp;gt;はお&amp;amp;amp;amp;amp;lt;ruby&amp;amp;amp;amp;amp;gt;散歩&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;(&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rt&amp;amp;amp;amp;amp;gt;サンポ&amp;amp;amp;amp;amp;lt;/rt&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;)&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;/ruby&amp;amp;amp;amp;amp;gt;でもして、のんびり&amp;amp;amp;amp;amp;lt;ruby&amp;amp;amp;amp;amp;gt;過&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;(&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rt&amp;amp;amp;amp;amp;gt;ス&amp;amp;amp;amp;amp;lt;/rt&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;)&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;/ruby&amp;amp;amp;amp;amp;gt;ごしたいですね。&amp;amp;amp;amp;amp;quot;,
&amp;amp;amp;amp;amp;quot;うめぼしたべたい&amp;amp;amp;amp;amp;quot;,&amp;amp;amp;amp;amp;quot;うめぼしたべたい&amp;amp;amp;amp;amp;lt;ruby&amp;amp;amp;amp;amp;gt;僕&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;(&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rt&amp;amp;amp;amp;amp;gt;ボク&amp;amp;amp;amp;amp;lt;/rt&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;)&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;/ruby&amp;amp;amp;amp;amp;gt;は&amp;amp;amp;amp;amp;quot;,&amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;lt;ruby&amp;amp;amp;amp;amp;gt;今&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;(&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rt&amp;amp;amp;amp;amp;gt;イマ&amp;amp;amp;amp;amp;lt;/rt&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;)&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;/ruby&amp;amp;amp;amp;amp;gt;すぐ&amp;amp;amp;amp;amp;lt;ruby&amp;amp;amp;amp;amp;gt;君&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;(&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rt&amp;amp;amp;amp;amp;gt;キミ&amp;amp;amp;amp;amp;lt;/rt&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;)&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;/ruby&amp;amp;amp;amp;amp;gt;に&amp;amp;amp;amp;amp;lt;ruby&amp;amp;amp;amp;amp;gt;逢&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;(&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rt&amp;amp;amp;amp;amp;gt;ア&amp;amp;amp;amp;amp;lt;/rt&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;rp&amp;amp;amp;amp;amp;gt;)&amp;amp;amp;amp;amp;lt;/rp&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;/ruby&amp;amp;amp;amp;amp;gt;いたい&amp;amp;amp;amp;amp;quot;,

これで、だいぶ互換性の高い文字列になるんじゃないでしょうか。

とある突発的作業で、サクラエディタでマクロを実行する機会がありました。

めったにやらないので、調査ついでにメモとして記事を残します。

 

今回は一例として、文頭に「”」(ダブルクオーテーション)を、文末に「”,」(ダブルクオーテーションとカンマ)を入れています。

もとにあった文字列ですよー → もとにあった文字列ですよー,

↑のように変換するわけです。

 

注意点は、「”」(ダブルクオーテーション)です。

スクリプトで文字列を定義するときは、

“文字列”のように、「”」2つで囲むのがふつうです。

ここで、「”」をそのまま文字列として扱うには、

“””文字列”””と、いう風に、「”」を連続して使用しなくてはなりません。

Option Explicit
Dim myStr, myTag, HedStr, EndStr, EndStr2
Dim myArray
Dim i

'文字列を取得
myStr = Editor.GetSelectedString(0)

'配列に分解
myArray = Split(myStr, vbCrLf)

If Ubound(myArray) = 0 Then
'文頭と文末に挿入する文字列
EndStr = """"
EndStr2 = ""","
'元の文字列と挿入する文字列の結合
myStr = EndStr &amp; myArray(0) &amp; EndStr2
'挿入
Editor.InsText(myStr)
Else
'2行目以降
For i = Lbound(myArray) to Ubound(myArray)
EndStr = """"
EndStr2 = ""","
myStr = EndStr &amp; myArray(i) &amp; EndStr2 &amp; vbCrLf
Editor.InsText(myStr)
Next
End If

このソースをテキストエディターで編集し、「.vbs」拡張子で保存します。

その後、マクロを実行したいファイルをサクラエディターで開き、変換したい文書をマウスで選択します。

その状態でメニューから[ツール]-[名前を指定してマクロ実行]から、vbsファイルを選択して実行するとマクロが実行されます。

 

ADVゲームの、シナリオ、立ち絵制御、フラグ管理、エフェクト演出などを設定するファイルを、「スクリプトデータ」と呼びます。

この記事では、弊社のスクリプトデータをどうやって作成しているかを紹介します。

 

①スクリプトをExcelに打ち込む

弊社の場合、スクリプトは全てエクセルで管理しています。

まず、スクリプトの仕様書を作成し、それをスクリプターの方々全員に共有してもらいます。

 

 

 

 

 

 

 

 

スクリプターの方々は、これを確認しつつ、ライターさんから届いたシナリオに合わせていくのです。

 

 

 

 

 

 

 

 

こんな感じで、ガシガシとスクリプトを打ち込んでもらってます。

 

②エクセルに入力したスクリプトデータをVBAでphpで読み取りやすいようにtxtに変換する

このスクリプトデータは、ソーシャルアプリとしてWEBブラウザゲームに利用します。そのため、PHPで読み取れるようにテキストデータに変換しなくてはなりません。その変換には、エクセルのマクロを利用して、VBAで実現しています。

そのソースは下記の通りです。

Sub OutputScripts()

'出力フォルダ名
Dim OUTPUT_DIRECTRY As String
OUTPUT_DIRECTRY = "Output"

'出力ファイル名
Dim FILE_NAME As String
FILE_NAME = "script.php"

'出力用変数
'「&amp; Chr(13) &amp; Chr(10)」はエクセル用の改行コード
Dim output1 As String
Dim output2 As String
Dim output3 As String
Dim output4 As String
Dim outputx1 As String
Dim outputx2 As String
output1 = "$back_main_arr = array("
output3 = "$script_main_arr = array(" &amp; Chr(13) &amp; Chr(10)
output5 = "$next_scenario_arr = array("
output6 = "$set_swf_arr = array("
outputx1 = "&lt;?"
outputx2 = "?&gt;"

'数値記録用
Dim number1 As Integer
Dim number2 As Integer

'ループ用
Dim i As Integer
Dim j As Integer
i = 0
j = 0

'文字の場所を探して保存
For myCnt = 1 To 10
If StrComp(Cells(myCnt, 2).Value, "num_main_start", vbTextCompare) = 0 Then
number1 = myCnt
End If
Next myCnt

For myCnt = 1 To 1000
If StrComp(Cells(myCnt, 2).Value, "num_main_end", vbTextCompare) = 0 Then
number2 = myCnt
myCnt = 1000
End If
Next myCnt

'背景スクリプトの取得
For i = (number1 + 1) To number2
If StrComp(Cells(i, 3).Value, "back_main_end", vbTextCompare) = 0 Then
output1 = output1 &amp; ");"
i = number2
Else
If i = (number1 + 1) Then
output1 = output1 &amp; """" &amp; Cells(i, 3).Value &amp; """"
Else
output1 = output1 &amp; "," &amp; """" &amp; Cells(i, 3).Value &amp; """"
End If
End If
Next i

'遷移スクリプトの取得
For i = (number1 + 1) To number2
If StrComp(Cells(i, 5).Value, "next_scenario_end", vbTextCompare) = 0 Then
output5 = output5 &amp; ");"
i = number2
Else
If i = (number1 + 1) Then
output5 = output5 &amp; """" &amp; Cells(i, 5).Value &amp; """"
Else
output5 = output5 &amp; "," &amp; """" &amp; Cells(i, 5).Value &amp; """"
End If
End If
Next i

'ファイルスクリプトの取得
For i = (number1 + 1) To number2
If StrComp(Cells(i, 4).Value, "set_combi_end", vbTextCompare) = 0 Then
output6 = output6 &amp; ");"
i = number2
Else
If i = (number1 + 1) Then
output6 = output6 &amp; """" &amp; Cells(i, 4).Value &amp; """"
Else
output6 = output6 &amp; "," &amp; """" &amp; Cells(i, 4).Value &amp; """"
End If
End If
Next i

'シナリオスクリプトの取得
For i = (number1 + 1) To number2
For j = 6 To 200
If StrComp(Cells(i, j).Value, "scn_end", vbTextCompare) = 0 Then
output3 = output3 &amp; "," &amp; Cells(i, j).Value &amp; """"
j = 200
ElseIf StrComp(Cells(i, j).Value, "script_main_end", vbTextCompare) = 0 Then
output3 = output3 &amp; Chr(13) &amp; Chr(10) &amp; ");"
j = 200
i = number2
Else
If j = 6 Then
If i = (number1 + 1) Then
output3 = output3 &amp; """" &amp; Cells(i, j).Value
Else
output3 = output3 &amp; "," &amp; Chr(13) &amp; Chr(10) &amp; """" &amp; Cells(i, j).Value
End If
Else
output3 = output3 &amp; "," &amp; Cells(i, j).Value
End If
End If
Next j
Next i

'出力準備
Dim pass As String
pass = Left(ActiveWorkbook.FullName, Len(ActiveWorkbook.FullName) - Len(ActiveWorkbook.Name))
pass = pass + OUTPUT_DIRECTRY + "\"
pass = pass + FILE_NAME
Open pass For Output As #1

'出力
Print #1, outputx1
Print #1, output3 &amp; Chr(13) &amp; Chr(10)
Print #1, output1
Print #1, output5
Print #1, output6
Print #1, outputx2

'一旦ファイルクローズ
Close #1

End Sub

VBAの編集のやり方は、詳しくはググってください。

output1 = "$back_main_arr = array("
output3 = "$script_main_arr = array(" &amp; Chr(13) &amp; Chr(10)
output5 = "$next_scenario_arr = array("
output6 = "$set_swf_arr = array("

あたりでキーとなる文字列を定義して、配列化した上でテキストデータに保存するようにしています。

 

③デバッグしながら①、②の繰り返し

ここまで上手くできていると、下記の画像のように、スクリプトを配列化したテキストデータが生成されます。

 

 

 

 

 

 

 

 

 

 

 

 

 

PCブラウザから確認できるようにテストサーバーを立てているので、このテキストデータをアップロードしてもらって、テストプレイしてもらいます。そこで動作をチェックしながら、デバッグしてもらい、必要に応じて①と②の作業を繰り返してもらいます。

 

これが、弊社のスクリプトデータの作り方です。

エクセルはPCにそこまで詳しくない人でも、指導さえすれば扱えるようになるので、戦力としてのスクリプターさんの追加が容易になります。また、見やすさというのもやはり重要な要素ですね。

以上、スクリプトデータをエクセルで管理する方法でした!