- 締切済み
EXCELで作ったマクロを別のファイルのEXCELでも使えるようにしたいです。
(1)EXCELファイルでマクロを作成しました。 (実際はここである人の知恵をお借りして作ったものですが…) しかし、(2)EXCELファイルで(1)EXCEL作成マクロが実行できません。 どのような処理をすれば、どのPCでも、どのファイルでも実行できるようなマクロに出来るのでしょうか?? 以下にそのマクロを示します。 ↓↓↓ Sub 文字置換() '半角カタカナを全角に、全角英数を半角にするマクロ (Excel編) Dim rng As Range Dim Re As Object Dim myPat As String Dim c As Range Dim Matches As Object Dim Match As Object Dim Str1 As String Dim Str2 As String Dim buf As String Dim t As Long On Error Resume Next Set rng = ActiveSheet.UsedRange.SpecialCells _ (xlCellTypeConstants, xlTextValues) On Error GoTo 0 If rng Is Nothing Then MsgBox "変換する対象が見当たりません。", 48 Exit Sub End If '全角側 --- 半角側 (!-/ を加えれば記号も半角) myPat = "([\uFF66-\uFF9F]*)([!-}]*)" '正規表現のパターン Set Re = CreateObject("VBScript.RegExp") Application.ScreenUpdating = False With Re .Global = True .IgnoreCase = True .Pattern = myPat For Each c In rng.Cells Set Matches = .Execute(c.Value) If Matches.Count > 0 Then buf = c.Value For Each Match In Matches If Len(Match.Value) > 0 Then Str1 = StrConv(Match.SubMatches(0), vbWide) If Str1 <> "" Then '0 =vbBinaryCompare buf = Replace(buf, Match.SubMatches(0), Str1, , , 0) End If Str2 = StrConv(Match.SubMatches(1), vbNarrow) If Str2 <> "" Then buf = Replace(buf, Match.SubMatches(1), Str2, , , 0) End If End If Str1 = "": Str2 = "" Next Match If buf <> c.Value Then c.Value = buf t = t + 1 End If End If Next c End With Set Re = Nothing Application.ScreenUpdating = True If t > 0 Then MsgBox t & "個のセルを変換しました。", 64 End If End Sub 出来れば、置換した文字数をメッセージBOXに表示したいです。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- noah7150
- ベストアンサー率46% (116/251)
> 質問ですが、個人用のマクロブックとはなんでしょうか? マクロを記録するときマクロ名の下にマクロの保存先の選択が出来ます そのとき個人用のマクロブックとすると、記録するマクロは作業中のブックではなく PERSONAL.XLS と言う名前で作成されます。 このブックはExcelを実行すると自動的に読み込まれブックが違っても記録したマクロが実行できるようになります。 ただ、PERSONAL.XLS と言う名前で保存されるだけで実際は XLSTART に保存されているブックはExcel起動時に自動で呼び出されます。 なので、自分で作成したマクロブックをこの中に入れておくだけでマクロが使用できるようになるわけです。 しかし非表示にしていないと自動で呼び出されたブックも見えるようになります。 PERSONAL.XLSも非表示にしていますが、ウィンドウで再表示を選択すれば個人用のマクロブックも見えるようになります
- noah7150
- ベストアンサー率46% (116/251)
作成したマクロブックを個人用マクロブック(PERSONAL.XLS)が保存される C:\Documents and Settings\[ユーザー名]\Application Data\Microsoft\Excel\XLSTART\ に複写しておくとExcel起動時に自動的に呼出されます。 非表示にして保存しておくと個人用マクロブックと同様に開かれてても見えなくなります。 ユーザーツールバーを新規作成してマクロブックに添付しておくとマクロ起動も便利です。(添付は新規作成ボタンがある画面の一番したの添付ボタンで出来ます) 構文は自分でも少しやってみてください。 全構文載せて、したいなんて丸投げに等しいですよぉ~。 ガンバレ!
- ts3m-ickw
- ベストアンサー率43% (1248/2897)
ExcelのマクロはExcelファイルの中か、個人用マクロブックの中にしか保存できません。 どのPCでも、どのファイルでも実行できるというのはちょっと無理ですね。 マクロを全てのファイルに組み込むか、個人用マクロブックを全てのPCにコピーするとかで対処するしかないと思います。 置換した文字数表示については面倒なのでパス。 Replace関数には置換した文字数を返す機能は無かったと思うので、やろうとすると修正が大変かな、と。
お礼
ありがとうございます。 質問ですが、個人用のマクロブックとはなんでしょうか?