• 締切済み

置換マクロの再帰コール

タイトルどおりなんですが、 【置換マクロの再帰コールがしたい】 と言うものですが、 do{}while(0)で定義した置換マクロを再帰コールする事が出来ません。(無理、なのかな~?)(汗) やり方を知ってる方、教えて下さい。お願いシマスー。

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

そもそも何をしたいんだか....

jam_with_ju2
質問者

お礼

回答有難う御座います。 簡単に言えば、タイトルにある通りに、再帰的にマクロを呼び出したかった訳で;

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

できません。マクロの展開は一度きり、と言語仕様で規定されています。

jam_with_ju2
質問者

お礼

返答有難う御座いました。 マクロ展開は1度だけで、再帰的に呼び出す事は出来ないのですね。 また一つ勉強になりました。 有難う御座います。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 一意の数字に置換されるマクロ

    もしかすると単なる、記憶違いかも知れませんが。。。 次のような事前定義のマクロをどこかで見たような気がするのですが、失念してしまい、検索してみてもそれらしいものが見当たりません。 ・事前定義マクロで、コンパイル時に一意の整数に置換されるマクロ。 例えば、 printf("%d\n",__なにがし__); printf("%d\n",__なにがし__); printf("%d\n",__なにがし__); とすると、 1 2 3 のように出力され、絶対に被らない一意の数字に置換されるようなものだったと思います。 カテゴリの通りC/C++で、VC8です。 ご存知の方、ご教授お願いします。

  • マクロを使って置換させるには?

    マクロの事で質問です。(エクセル2003を使用) セルG5に 「私は●●●が好きです」 と入力されています。 セルG12に 「貴方」「彼氏」「彼女」「太郎」「次郎」 などのワードが入力されていたとします。 マクロを使って●●●部分を置換させたいです。 「新しいマクロの記録」を使ってみたのですが、どうしても出来ません。 どなたか詳しい方教えてください。 よろしくお願いします。

  • 置換後に太く赤字にしたいです

    めぐみと申します。 以前に兄に以下のマクロを作ってもらいました。 エクセルにある文字を置換してくれるマクロです。 置換後の文字を太く赤字にしたいですがそのようにすればいいでしょうか? 恐れ入りますが知っている方がいらっしゃりましたら教えて頂けないでしょうか? よろしくお願いいたします。 Sub ワード置換() Dim wdObj As New Word.Application Dim buf As String buf = Dir(ActiveWorkbook.Path & "\*.doc") Do While buf <> "" wdObj.Documents.Open ActiveWorkbook.Path & "\" & buf n = 1 Do While ActiveSheet.Cells(n, 1) <> "" fdtxt = ActiveSheet.Cells(n, 1) rptxt = ActiveSheet.Cells(n, 2) With wdObj.Selection.Find .Text = fdtxt .Replacement.Text = rptxt .Forward = True .Wrap = wdFindContinue End With wdObj.Selection.Find.Execute Replace:=wdReplaceAll n = n + 1 Loop buf = Dir() Loop wdObj.Quit End Sub

  • マクロで書式ごと置換

    マクロで書式ごと置換 いつもお世話になります。 今回は標記の件についてお伺いしたく質問を投稿させていただきました。 現在、[D5:CN93]に配置している文字列データを記号に置換する作業をおこなっています。置換マクロに関してはreplaceを使用し、今のところ問題なく動いています。作業工程としては、上記の範囲にあるデータの一覧を作成し、どのデータをどのような記号に置き換えたいかの一覧を附します。 例)  [A1](置換したい記号)   [B1](置換したい文字列)      ○          イチゴ      ◆          バナナ    [D5:CN93]置換対象の文字列例    イチゴ,バナナ マクロでは置換したい文字列、置換したい記号の値をreplace関数に与えて、上記の範囲にあるセル1つ1つに置換をかけていく、というものです。 今までは、文字列の書式は問題ではなかったのですが(置換後に一括変換)、上のほうから「イチゴを赤い○、バナナを黄色い◆のように、色をつけられないか」といわれました。 置換ウィザードを試してみたのですが、セル全体の文字列の色が変わってしまいうまくいきませんでした。 またreplaceで色情報も置換する方法もわかりません(無いのかもしれませんが)・・・ そこで「色情報を持たせたまま、文字列の一部を置換」する方法を教えてください。 これまでのデータを使用したいので、データは以下のように並んでいます。  [A1](置換したい記号)   [B1](置換したい文字列)     赤色の○         イチゴ     黄色の◆         バナナ    [D5:CN93]置換対象の文字列   イチゴ,バナナ

  • 秀丸で置換かマクロで括弧をとりたい

    下記のような文字列の並びで、括弧と中の数字を 削除したいのですが、置換かマクロなどはあるでしょうか? 東京都(154) 千葉県(132) 茨城県(763) 埼玉県(3040) 群馬県(1178) 東京都 千葉県 茨城県 埼玉県 群馬県 (.*)で置換してみたんですが、すべて文字が なくなってしまいました(汗) 秀丸のバージョンは7.11です。

  • エクセルマクロでワードの置換マクロを作りたい

    エクセルで作成した置換シートを使用して、ワードの資料内の間違え語を一括置換えできるエクセルマクロを作りたいです。 置換えシートには、A列に間違え語、B列に正しい語が入力してあります。 色々やってみたのですが、うまくいきません。 分かる方、教えていただけませんか?

  • 秀丸の置換

    いつもお世話になっています。 秀丸の置換でいろいろ検索したのですが、どうしても わからなくて質問させていただいています。 というか、私のやりたいことができるのかどうかも 不安なところなのですが・・・・(汗) 添付の画像のように2行の空白の改行の後に文章がはじまります。 その文章の始まりに●を入れたいのですが、マクロか置換で やり方はあるでしょうか?

  • マクロで組み合わせの数を求める計算(再帰的)

    Ms-excelで下記のマクロを作ると「=K(n,i)」と適当なセルに入れることで、組み合わせ計算(=高校の教科書の表記では nCi )を行えるようですがどういう原理で組み合わせ計算をしているのか理解できないため質問します。 ------------ Function K(n, i) K = 1 If i > 0 Then K = (n - i + 1) / i * C(n, i - 1) End If End Function ------------ 以下高校の教科書に沿ってK(n, i)を nCi と書きますが、 例えば5C5を求めるとき上のプログラムだと、 5C5 = 5C4*1/5 5C4 = 5C3*1/2 5C3 = 5C2*1 5C2 = 5C1*2 (以下i>0となるためストップ) とさかのぼって計算して(再帰的定義?)いるようですが、5C1(マクロでK(5, 1)の値 )が定義されていない以上はさかのぼっていっても値が決まらないように思いますがどういう原理で組み合わせ計算をしているのでしょう?またK=1と定義する意味はあるんでしょうか?

  • データの置換 エクセルの操作とVBAマクロ…???

    A列に 17:00 と表示されているセルを 16:45 に 置換したいです。 普通にエクセルの操作(編集からダイアログボックスを表示して)行うと普通に実行されるのですが、その操作を記録したマクロを実行しても何も起こらないのです。(エラーも出ません) VBAには↓のとおり記録されました。 Columns("A:A").Select Selection.Replace What:="17:00", Replacement:="16:45", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False 実は、17:00 と表示されているセルに入力されているデータは、17:00:00 であり、ユーザー定義の書式設定で h:mm の形式で表示されています。 元データの書式設定を 17:00:00 (時刻)に変えてもやはり同様で、エクセル操作ではうまくいきますがマクロだと何も起こりません。 試しに元データの書式設定を標準(シリアル値)に変えてやってみるとマクロでも置換されましたが、実際の業務では大変不便そうです。 マクロを実行する時にはユーザー定義や時刻の書式は認識されないのでしょうか? それとも書式に原因を求めるのが間違ってるのでしょうか?

  • 関数の再帰処理

    1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657... という数列(フィボナ数列)を再帰処理でだしたいのですが・・・・・ include <stdio.h> int function( int ); int main( void ){ int n; do { printf( "0 以上の整数値を入力して下さい→ " ); scanf( "%d", &n ); }while ( n < 0 ); printf( "計算結果: %d\n", function( n ) ); getchar(); getchar(); return 0; } int function( int n ){ //フィボナの処理(function)の再帰呼び出しによる } function内に再帰処理を用いてprintf( "計算結果: %d\n", function( n ) );で画面出力したいのですが・・・・・・。