MIFESマクロで検索文字をコピーバッファーからセットする方法について

このQ&Aのポイント
  • MIFES(for win 3.0)のキーボードマクロにて、テキストの一部(氏名)をコピーし、検索欄に貼り付けた後、キーボードマクロを変換すると検索部分は固定されてしまう。
  • BASICのように書くと、コピーバッファーに格納した氏名を使用して検索することはできない。
  • MIFESのマクロで検索文字をコピーバッファーからセットする方法について、ご教授いただきたい。
回答を見る
  • ベストアンサー

MIFESマクロで検索文字をコピーバッファーからセットする方法について

MIFESのマクロについてあまり知識がなくて質問させていただきますが、 MIFES(for win 3.0)のキーボードマクロにて、 1. テキストの一部(氏名)をコピーし、 2. その後、「検索」を選択し、検索文字欄にコピーバッファーから貼り付けました その時のキーボードマクロを「マクロ言語に変換」すると検索部分は次のようになりました。     search(2,1,"山口百恵") これでは次々と検索文字(氏名)が変わる場合は困ります。 説明がうまくできませんが、BASICのように書くと     copy          ← コピーバッファーに格納     simei = "山口百恵"   ← コピーバッファーの内容から     search(2,1,simei) のようなことはできませんでしょうか。 ご存じの方がいらっしゃいましたら、よろしくご教授をお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • stingy
  • ベストアンサー率37% (144/379)
回答No.1

コピーバッファーの内容を得るのは 範囲選択ならcalldll?("?","GetClipboardData",??? 行・箱ならバッファファイルからの読み込み でしょうが、自分にはわからないので 手抜きですが、これでどうでしょう。 getselstring(@str1) // 選択中の文字列取得 @selmode = SEL_CANCEL // 選択解除 search(2,1,@str1) // 検索

daruma_san
質問者

お礼

stingyさん、早速の回答をいただきましてありがとうございました。 今日、帰宅し、ワクワクしながら早速試してみました。 その結果、お陰様で希望どおりの動作を確認できました。 本当に、本当に有り難うございました。感激しました。 参考までに、テストマクロとテストファイルの例を下記に記述します。 ------------------------------------------------------------------ *test02 選択文字列取得テスト execmd(61) ;行左端/選択と← @selmode=3 execmd(62) ;行右端/選択と→ @1=getselstring(@str1) ;// 選択中の文字列取得 @selmode = SEL_CANCEL ;// 選択解除 search(2,1,@str1) ;// 検索 messagebox(@str1,"発見",MB_OK) search(2,1,@str1) ;// 検索 messagebox(@str1,"発見",MB_OK) * ------------------------------------------------------------------ (ファイル1) 山口百恵 平原綾香  :  : ------------------------------------------------------------------ (ファイル2) もらい泣きjgkgっhjhj一青窈;lhjっhgひ bvbんv山口百恵びびうgyっg絶体絶命jkjy kjg山口百恵mhghj夢先案内人jkjkghgjygy  :  : ------------------------------------------------------------------

関連するQ&A

  • xyzzyを使いこなすには.ブロックコピーやマクロ?

    xyzzyエディタでブロックコピーやキーボードマクロを使いたいのですが、詳しく書かれているサイトはありますか? 大昔、MIFESというエディタでブロックコピーは良く使っていたのですが、xyzzyでの使い方がわかりません。 また、xyzzyはlispでマクロが作れるようですが、xyzzyでメール受信しようと考えていますが、可能なのでしょうか? よろしくお願いします。

  • マクロ(VBA)で検索した文字

    また面倒お掛けします マクロ(VBA)で検索した文字は文字として認識しないのでしょうか? 知識がないので一つ一つのマクロを作っていますが、検索した文字から次の展開が出来ないで困っています。検索した文字(加藤)を値でコピーして次に展開すると文字として認識していないのか展開出来ません、そのセルに加藤を新たに入力すると展開されます。 セルの中で文字の位置がずれているように見えます( 加藤)こんな感じです位置修正しても標準の位置にはならない、標準ですと(加藤)と表示されると思うのですが。 文章で解りますでしょうか 宜しくお願いいたします

  • 秀丸マクロ =検索文字を文末まで置換=

    秀丸エディタのマクロを使って以下の処理を行おうとしました。 1.検索した文字の一行下の行をコピーし、   そのコピーした行末にコピーしたデータを貼り付ける。 2.最初に検索した文字に該当する次の文字の一行下の行をコピーし、   そのコピーした行末にコピーしたデータを貼り付ける。   (繰り返し。) 3.文末(EOF)まで2.の処理を繰り返す。 以下のマクロを作ってみました。 while(code != eof){ setcompatiblemode 15; searchdown "検索文字" , hilight; down 1; copyline; paste; finddown; すると、2.の処理まで正常に実行されるのですが、 検索文字がなくなった時点で2の処理がストップされる事がなく、 それ以降の行のすべてが文末(EOF)まで、コピー&ペーストの処理が 繰り返されます。 例:______________________________________________________ (元の文) ○○ ××× △△ ■■■ ○○ □□□□ ☆☆ (検索する文字) ○○ (マクロ実行後の文) ○○ ××× ××× △△ ■■■ ○○ □□□□ □□□□ ☆☆ ☆☆ ______________________________________________________ 上記の例でいうと、(元の文)の☆☆の部分が、(マクロ実行後の文)で ☆☆ ☆☆ となってしまってます。 この部分を ☆☆ のままにしたいのです。 マクロをどのように組めば実現できるのでしょうか。 よろしくお願いします。

  • 検索した文字のセルを基準に範囲指定コピーのマクロ

    表題のマクロを教えてください。 検索範囲 シート1のA1:K100 検索する文字 ” 成績 ” コピーする範囲 見つかったセルの下の行から5行~10列まで全部。 貼り付ける場所 シート2のB1 宜しくお願いします。

  • エクセルのセルの文字をyahooで検索

    エクセルのセルに記載されている文字をyahooで検索したいと思っています。 VBA初心者です。色々サイトを見たのですがエラーばっかりで前に進まなかったので 質問させていただきます。 <流れとしては…> (1)エクセルVBAでマクロを起動させるとyahooを自動的に開く (2)セルに記載されている文字をコピーしてyahooの検索できる枠にペースト (3)yahooの「検索」ボタンを自動的に押して検索結果の画面まで進む を目標にしてマクロを作成したいと思っています。 <出来上がりは…> (1)エクセルVBAでマクロを起動させるとyahooを自動的に開く ⇒こちらはネットで調べて起動することができました。 (2)セルに記載されている文字をコピーしてyahooの検索できる枠にペースト ⇒Sheet1のA1に記載されている文字をコピーする所まで進みました。   yahooの検索の枠にペーストしたいです。 (3)yahooの「検索」ボタンを自動的に押して検索結果の画面まで進む ⇒yahooの検索ボタンを押してそのまま検索結果の画面を開きたいです。 ===[マクロ文]==================================================   'yahooで自動で検索' CreateObject("wscript.shell").Run "http://www.yahoo.co.jp/" Sheets("Sheet1").Select ActiveSheet.Range("A1").Select Selection.Copy ====ここまで================================================== この先が調べてもどうマクロを組んでよいのか不明でしたので 質問させて下さい。 よろしくお願いします。

  • EXCEL 値のみをコピーするマクロ

    お世話になります。 特定のセル(M2)からアクティブセル(クリックで指定したセル)へ「値のみ」をコピーするマクロを考えています。 現在は「そのままコピー」するマクロになっているので、「値のみコピー」へ変更するには どうすればいいでしょうか? Sub 追番貼付け() ' ' Worksheets("データ検索用").Range("M2").Copy Sheets("見積書").Select ActiveSheet.Paste Application.CutCopyMode = False End Sub

  • マクロでのピボット内検索について

    エクセルマクロのピボット内検索について質問です。 Sheet1 に以下の通りピボットテーブルを作成しております。 A列 = 項目 B列~F列 = 数値 A列が項目aaa にマッチした場合、同じ行のB列~F列をコピーしたいのですが、マクロでピボットテーブル内の文字は検索できないのでしょうか。 他の方の質問を参考に、以下のマクロを書いておりますが、何度やってもaaa の行を指定できません。 Dim myrng As Range Set myrng = worksheets("Sheet1").Cells.Find(What:="aaa", After:=ActiveCell) ActiveCell.Resize(1, 6).Select Selection.Copy アドバイスいただければ幸いです。よろしくお願いいたします。

  • テキストボックスにコピーするマクロ

    エクセルのA1にある文字列の先頭から2番目の文字を、テキストボックスにコピーするマクロのことですが。 Sub copy()  Cells(2, 1) = "=MID(A1,2,1)"  Selection.copy  Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _  SkipBlanks:=False, Transpose:=False  ActiveSheet.Shapes("Text Box 4").Select  Selection.Characters.Text = Cells(2, 1) End Sub 上記のもので成功しますが疑問に思うことがあります。 Cells(2, 1) = "=MID(A1,2,1)" の次の行に Cells(2, 1).Select を置くと、実行後に A2 には関数が残らず数値しか存在しなくなります。どうしてでしょう? (コピー → 形式を選択して貼り付け を手作業でやる時は関数は残るのに) また、上記よりも簡潔なマクロがあれば教えて下さい。

  • エクセルマクロでコピーの質問です。

    エクセルマクロでコピーの質問です。 こんにちわ^^; よくわからないエラーが起こっているため困っています。 1.xlsという別のエクセルを開いて指定のセルをコピーし、貼り付けるということで下記のマクロを作ってみました。 ちなみにマクロを書いたファイルはsum.xlsで、1.xlsのコピーしたいセルには数値のみ入っています(書式は会計)。 Sub before() Workbooks.Open Filename:="c:¥aaa¥1.xls" Range("a1:a5").Copy ActiveWindow.Close Range("a1").PasteSpecial End Sub しかし、このマクロをThisWorkbookに貼り付けると文字列として保存されてしまいます。 そこで最後の行を Range("a1").PasteSpecial Paste:=xlValues にするとエラー400が出ます。 一応、sheet1(sheet1)に貼り付けて実行してみたところ、コピー自体ができませんでした。 まだ余りエクセルマクロを理解していないため、なぜなのかが良くわからないのでアドバイスをお願いいたします。 ちなみに使っているのはoffice2003のエクセルです。

  • コピーした文字列を現在開いているシート名にセットしたい

    現在開いているシート名を、クリップボードにある(?)文字列に 書き換える(?)マクロをつくりたいです。例えば、 (1) セルA1に、「aaa111」と入力されているとします。 (2) A1セルをダブルクリック(ないし、数式バーから必要な文字列だけを選択)します。 (3) 「111」だけをコピー(Ctrl+C)します。 (4) 「Sheet1」のタブをWクリックします。 (5) 貼り付け(Ctrl+V)により「Sheet1」が「111」に書き換えられます。 (6) Enterキーで確定します。 参考までに今の動作をマクロ記録してみると、次のようになったのですが、 「111」だけをコピーしたつもりなのに、「aaa111」がクリップボードに 格納されてしまっています。 Sub Macro1()   ActiveCell.FormulaR1C1 = "aaa111"   Sheets("Sheet1").Select   Sheets("Sheet1").Name = "111" End Sub 任意のセルをダブルクリックして 必要な文字列(=シート名にしたい文字列)だけをコピーし、 マクロを実行(ショートカットキーを押下)するだけで サッと書き換わるイメージですが、実現可能でしょうか。 よろしくお願い致します。