【Excel】指定範囲のセル中の文字列頭にインデント(半角'>')を付ける
お仕事関連の覚書。
Excelで、
| parent | 54 years old |
| child | 28 years old |
| >grandchild | 4 years old |
| parent | 54 years old |
| child | 28 years old |
| >grandchild | 4 years old |
| parent | 54 years old |
| >child | 28 years old |
| >>grandchild | 4 years old |
とても手作業でいちいち'>'を打ってられません。
また、Excelの標準の検索・置換機能は貧弱なので、一括置換も難しそう……。
一旦csvに落としてエディタで変換というのも考えましたが、そうするとセルの属性(色など)までクリアされてしまいます。
テキストだけコピーして変換後ペーストする、というのも面倒だし……。
そんなわけで、初めて(!)Excelのマクロ機能なるものを使ってみようと思い立ちました。
とりあえずキーボードマクロ(ツール(T)→マクロ(M)→新しいマクロの記録(R))を試すも……どうも使い勝手が悪すぎるので、やむを得ずVBAなるものを使って(ツール(T)→マクロ(M)→マクロ(M)→(マクロ名を入れて)編集(E))簡単なコードを組んでみることにしました。
出来たのはこんな感じ(↓)。' 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
' 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
2006/05/16(火) 15:07 | 固定リンク
| 記事の編集(管理者用)
「パソコン・インターネット」カテゴリの記事
- 動けるものも久しからず(2012.02.15)
- 5年以上も気付かない振り(2012.02.14)
- 探しものって、みつけにくいものですね…(2012.02.13)
- Norton Internet Securityでエラー: 「3043,1」(2011.07.13)
- アンケート:ブログ等で「続きを読む」リンクを見たら…(2010.11.05)
「覚書」カテゴリの記事
- 動けるものも久しからず(2012.02.15)
- Norton Internet Securityでエラー: 「3043,1」(2011.07.13)
- 終わりを惜しむ6タイトル(2010.12.19)
- ココでも:ココログ広場ユーザーのブログをキーワードで検索するサービスを試作(2010.10.29)
- ココログ用ReadMore:トップページの『》 続きを読む』をその場で展開するスクリプト(2010.11.06)

