« 【ココログ】ページ内目次:記事の編集画面へのリンクを追加 | トップページ | なんか梅雨みたい »

2006/05/16

【Excel】指定範囲のセル中の文字列頭にインデント(半角'>')を付ける

お仕事関連の覚書。

Excelで、

parent54 years old
というようなセルと
child28 years old
>grandchild4 years old
というようなセルを一緒にして
[A]
parent54 years old
child28 years old
>grandchild4 years old
としたあと、"child"と"grandchild"のインデントをひとつ深くして、
[B]
parent54 years old
>child28 years old
>>grandchild4 years old
のようにする作業が大量に発生。
ちなみに上表のセルの中身は適当。実際はもっと複雑です

とても手作業でいちいち'>'を打ってられません。
また、Excelの標準の検索・置換機能は貧弱なので、一括置換も難しそう……。
一旦csvに落としてエディタで変換というのも考えましたが、そうするとセルの属性(色など)までクリアされてしまいます。
テキストだけコピーして変換後ペーストする、というのも面倒だし……。
そんなわけで、初めて(!)Excelのマクロ機能なるものを使ってみようと思い立ちました。

とりあえずキーボードマクロ(ツール(T)→マクロ(M)→新しいマクロの記録(R))を試すも……どうも使い勝手が悪すぎるので、やむを得ずVBAなるものを使って(ツール(T)→マクロ(M)→マクロ(M)→(マクロ名を入れて)編集(E))簡単なコードを組んでみることにしました。

出来たのはこんな感じ(↓)。
Sub インデント挿入()
' Keyboard Shortcut: Ctrl+i
    For Each tmpCell In Selection.Columns(1).Cells
        If tmpCell.Formula <> "" Then
            tmpCell.Formula = ">" + tmpCell.Formula
        End If
    Next
'   If Selection.Cells.Count = 1 Then ActiveCell.Offset(1, 0).Select
End Sub

Sub インデント削除()
' Keyboard Shortcut: Ctrl+Shift+I
    Set SrchReg = CreateObject("VBScript.RegExp")
    With SrchReg
        For Each tmpCell In Selection.Columns(1).Cells
            .Pattern = "^>"
            tmpCell.Formula = .Replace(tmpCell.Formula, "")
        Next
    End With
'   If Selection.Cells.Count = 1 Then ActiveCell.Offset(1, 0).Select
    Set SrchReg = Nothing
End Sub
ショートカットキーを適当に登録しておいて(挿入: Ctrl+i、削除: Ctrl+Shift+i)、セルを範囲選択した後でそのキーを入力することで、インデントの挿入([A]→[B])・削除([B]→[A])が可能となりました。
VB系は初めてなので全く手探り。これが一般的な作りなのかどうかもわかりません。

« 【ココログ】ページ内目次:記事の編集画面へのリンクを追加 | トップページ | なんか梅雨みたい »

パソコン・インターネット」カテゴリの記事

覚書」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

« 【ココログ】ページ内目次:記事の編集画面へのリンクを追加 | トップページ | なんか梅雨みたい »

戻るリンク追加

カレンダー

2022年4月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

ココログカレンダーPlus(旧2)

検索


    • Web全体 サイト内
    • 蔵書のISBNを入力して下さい
    • はじめる前
      初級者向け
      上級者向け
      ブログ紹介
      結果を表示

コメントリストツリー化

無料ブログはココログ