excel:line_break_in_cell
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン | |||
| excel:line_break_in_cell [2023/10/09] – [マクロを書く] administrator | excel:line_break_in_cell [不明な日付] (現在) – 外部編集 (不明な日付) 127.0.0.1 | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| + | ===== エクセルで複数行セルの参照 ===== | ||
| + | {{: | ||
| + | ==== 目的 ==== | ||
| + | 4桁の数字で生徒名を表示させるのを、セル内改行で複数指定したものでも生徒名を羅列する関数マクロです。 | ||
| + | ==== 下準備 ==== | ||
| + | 氏名データのワークシートを用意します。 | ||
| + | - ワークシート名は[1年][2年][3年]とします。数字は半角です。 | ||
| + | - B2から縦に1組の氏名、C2から縦に2組の氏名などとします。 | ||
| + | {{: | ||
| + | ==== マクロを書く ==== | ||
| + | - Visual Basic Editorを開きます。Alt + F11 キーで開くそうです。 | ||
| + | - VBAプロジェクトを右クリックして、標準モジュールを追加 | ||
| + | - 下記のコードを記述します。コピペ。 | ||
| + | |||
| + | <code vb> | ||
| + | Function SeitoName(ByVal nums As String) As String | ||
| + | |||
| + | Dim result As String | ||
| + | Dim num As String | ||
| + | Dim Lfcount As Integer | ||
| + | Dim i, g, c, n As Integer | ||
| + | |||
| + | Lfcount = 0 ' | ||
| + | For i = 1 To Len(nums) | ||
| + | If Mid(nums, i, 1) = vbLf Then Lfcount = Lfcount + 1 ' | ||
| + | Next | ||
| + | |||
| + | result = "" | ||
| + | |||
| + | For i = 0 To Lfcount | ||
| + | If i > 0 Then result = result & vbLf ' | ||
| + | num = Split(nums, vbLf)(i) | ||
| + | g = Int(Mid(num, | ||
| + | c = Int(Mid(num, | ||
| + | n = Int(Right(num, | ||
| + | result = result & WorksheetFunction.Index(Worksheets(g & " | ||
| + | Next | ||
| + | |||
| + | SeitoName = result | ||
| + | |||
| + | End Function | ||
| + | </ | ||
