アプリ版:「スタンプのみでお礼する」機能のリリースについて

(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に表示したいです。

A 回答 (3件)

> 質問ですが、個人用のマクロブックとはなんでしょうか?


マクロを記録するときマクロ名の下にマクロの保存先の選択が出来ます
そのとき個人用のマクロブックとすると、記録するマクロは作業中のブックではなく PERSONAL.XLS と言う名前で作成されます。
このブックはExcelを実行すると自動的に読み込まれブックが違っても記録したマクロが実行できるようになります。
ただ、PERSONAL.XLS と言う名前で保存されるだけで実際は XLSTART に保存されているブックはExcel起動時に自動で呼び出されます。
なので、自分で作成したマクロブックをこの中に入れておくだけでマクロが使用できるようになるわけです。
しかし非表示にしていないと自動で呼び出されたブックも見えるようになります。
PERSONAL.XLSも非表示にしていますが、ウィンドウで再表示を選択すれば個人用のマクロブックも見えるようになります
    • good
    • 1

作成したマクロブックを個人用マクロブック(PERSONAL.XLS)が保存される


C:\Documents and Settings\[ユーザー名]\Application Data\Microsoft\Excel\XLSTART\
に複写しておくとExcel起動時に自動的に呼出されます。
非表示にして保存しておくと個人用マクロブックと同様に開かれてても見えなくなります。
ユーザーツールバーを新規作成してマクロブックに添付しておくとマクロ起動も便利です。(添付は新規作成ボタンがある画面の一番したの添付ボタンで出来ます)

構文は自分でも少しやってみてください。
全構文載せて、したいなんて丸投げに等しいですよぉ~。
ガンバレ!
    • good
    • 0
この回答へのお礼

ありがとうございます。
質問ですが、個人用のマクロブックとはなんでしょうか?

お礼日時:2008/06/27 11:41

ExcelのマクロはExcelファイルの中か、個人用マクロブックの中にしか保存できません。


どのPCでも、どのファイルでも実行できるというのはちょっと無理ですね。
マクロを全てのファイルに組み込むか、個人用マクロブックを全てのPCにコピーするとかで対処するしかないと思います。

置換した文字数表示については面倒なのでパス。
Replace関数には置換した文字数を返す機能は無かったと思うので、やろうとすると修正が大変かな、と。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!