Excelで解答用紙を作った時に、文字数指定の模範解答を書くのがダルすぎるから書いたコード
たいした話ではない。国語の先生で使いたいと思う人がいれば。
Excelで考査の解答用紙を作る。セル結合して作る。別にデータを処理するわけではないから、躊躇しない。
マス目も2セルを縦に結合して作る。しかし、模範解答を作る時、いちいちセルを移動して入力するのはダルい(今回、なんか文字数指定の問題をたくさん作っちゃったのでよりダルい)。だから次のコードをちゃちゃっと書いた。
新しいシートを作成して、そのシートモジュールに書く。
Option Explicit
Option Base 1
Sub SplitStringIntoEveryOtherCell()
Dim targetRange As Range
Set targetRange = Selection
Dim inputString As String
inputString = targetRange.Value
'列の値をすべて消す
targetRange.EntireColumn.ClearContents
Dim currentRow As Long
currentRow = targetRange.Row
Dim i As Long
For i = 1 To Len(inputString)
Me.Cells(currentRow, targetRange.Column).Value = Mid(inputString, i, 1)
currentRow = currentRow + 2
Next i
'分割されたテキストに加えて空白のセル1つを選択
currentRow = currentRow - 1
With Me
.Range(.Cells(targetRange.Row, targetRange.Column), .Cells(currentRow, targetRange.Column)).Select
End With
End Sub
このシートのどこかのセルに分割したい文字列を入力し、そのセルを選択した状態で実行すると、文字列が1セル飛ばしで1文字ずつ分割して縦方向のセルに入力され、一括で選択される。コピーして、数式貼り付けをする。
シートにこのマクロを設定したボタンを作っておこう。