advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 27286 for マクロ (0.014 sec.)
[[20080725130903]]
#score: 2168
@digest: 4e2ff19513da3069af8085443a558a92
@id: 39249
@mdate: 2008-08-06T00:19:39Z
@size: 6241
@type: text/plain
#keywords: astrlinks (25088), ンハ (21846), ウウ (14701), codename (12433), イツ (10498), xllinktypeexcellinks (9344), 誤操 (8326), project (7646), explorer (4998), ツ) (3443), 回目 (3237), property (2671), い, (2626), 実行 (2611), displayalerts (2607), と, (2527), ロボ (2193), ハイ (2179), (サ (1966), て, (1807), マク (1784), flg (1731), ・エ (1725), で, (1686), ラグ (1675), クロ (1604), フラ (1565), サン (1533), ト・ (1437), workbooks (1292), ーラ (1047), を実 (1003)
マクロボタンを2回目に押すと効かなくする』(サンハイツ)
マクロボタンを2回目に押すと,2回目にはマクロが働かないように VBAで設定したいのですが,そんなコードはありますか? ---- マクロボタンというのは何を指しているのでしょうか。 自分で作成し他マクロを起動するためのボタンでしょうか。 であれば、マクロの処理の最初で、ボタンを無効にすればよいかと思います。 (Mook) ---- すみません。支離滅裂で。 言い方を変えまして マクロを1度実行したあと,2回目にマクロを実行しようとすると 実行できなくなるようにしたいのですが,そんなことはVBAで設定できるのでしょうか。 (サンハイツ) ---- >2回目にマクロを実行しようとすると実行できなくなるように 実行したらまず、実行済の「フラグ」を確認し立っていなければ実行し「フラグ」を立てる、 立っていたら何もせずに終わる。どこにフラグを立てるかは、何時まで実行したくないかによる。 (通りすがり) ---- > 2回目にはマクロが働かないように 1) 一度っきりで後は再度立ち上げても使わないってことですか? 2) PCが変わっても同じこと? (seiya) ---- はい,一度実行したら,そのマクロはもう使わないのです。 マクロをボタンに登録していて,誤操作で再度ボタンを押すと 変な画面になってしまうので,誤操作防止のため VBAの最後に,「このマクロは1回きり有効」 のようなことを表現したいのですが,そんなことできますか。 (サンハイツ) ---- 1) Sheet1を非表示にしてダミーシートにしておく 2) マクロを実行する際にSheet1の存在を確認して、実行後にSheet1を削除する 3) 再度マクロを実行しようとしてもできない。 なんてのはどうでしょう? (seiya) ---- なるほど,ありがとうございます。 それで下のような感じにしまして, マクロを実行すると,1回目はSheet1を削除して,次の動作へ移る。 でも,2回目に実行しようとすると,Sheet1は既に削除されているから,マクロがエラーになる。 Sub Macro1() Sheets("Sheet1").Select ActiveWindow.SelectedSheets.Delete 〜〜〜 〜〜〜 End Sub ここでですね,マクロを実行して,Sheet1を削除するときに, 「選択したシートにデータが存在する可能性があります。データを完全に削除するには削除を クリックしてください」 というメッセージが表示されてしまうのですが。 今まで何もせずにマクロを実行できたのが,1つクリック動作が増えてしまったので,このメッセージ が表示されないようにすることはできますか。 (サンハイツ) ---- えーーと、 こんな感じです。 まず、シートの参照は CodeName にした方がより確実だと思いますので、 VBE の Project Explorer の Sheet1(Sheet1) を選択して Property box の CodeName を好みで変更する (sheet1, sheet2 等は使用しない) 仮に xyz とでもしておきましょう。 Sub test() Dim ws As Worksheet, flg As Boolean For Each ws In Sheets If ws.CodeName = "xyz" Then Application.DisplayAlerts = False ws.Delete Application.DisplayAlerts = True flg = True Exit For End If Next If Not flg Then Exit Sub ' 実行されるべきマクロ名 End Sub (seiya) ---- ありがとうございます。 だんだん分かってきました。 ちなみに,CodeNameを使わない場合はどうなるのでしょうか。 上の VBE とか Project Explorer とか Property box というのは素人の私には難しすぎますので。 わがまま言ってすみません。 (サンハイツ) ---- VBE : Visual Basic Editor (VB エディタ) Alt + F11 で出る画面 Visual Basic を編集するためのソフト Project Explorer : プロジェクト・エクスプローラー VBE の左端画面に出る小枠窓 モジュール および モジュールの集合体を表示 Property Box : プロパティボックス : 通常はプロジェクト・エクスプローラーの下に出る小枠窓 とか、説明するのが面倒だし、意味がないような気がするので省略... 左端のシート名を暗号のようなもの(例:123qap6_r とか)に変更する。 Sub test() Dim flg As Boolean If Sheets(1).Name = "123qap6_r" Then Application.DisplayAlerts = False Sheets(1).Delete Application.DisplayAlerts = True flg = True End If If Not flg Then Exit Sub まくろ End Sub (seiya) ---- 分かりました。ありがとうございました。 (サンハイツ) ---- また質問させていただきます。 以前教えていただいたコードと合わせて,下記のようなコードを作りました。 Sub test() Dim ws As Worksheet, flg As Boolean For Each ws In Sheets If ws.CodeName = "xyz" Then Application.DisplayAlerts = False ws.Delete Application.DisplayAlerts = True flg = True Exit For End If Next If Not flg Then Exit Sub Dim aa, bb, astrLinks Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Application.ScreenUpdating = False For Each aa In fso.GetFolder(ThisWorkbook.Path & "¥").Files If aa.Name <> ThisWorkbook.Name And aa.Name <> "ああ.xls" And aa.Name <> "いい.xls" Then Workbooks.Open Filename:=ThisWorkbook.Path & "¥" & aa.Name, UpdateLinks:=0 astrLinks = Workbooks(aa.Name).LinkSources(Type:=xlLinkTypeExcelLinks) If Not IsEmpty(astrLinks) Then For Each bb In astrLinks Workbooks(aa.Name).BreakLink Name:=bb, Type:=xlLinkTypeExcelLinks Next End If Workbooks(aa.Name).Worksheets(1).Cells.Copy ThisWorkbook.Worksheets(1).Cells Workbooks(aa.Name).Close False Exit For End If Next Application.ScreenUpdating = True Set fso = Nothing End Sub これは,フォルダ内に,たとえば,AA,ああ,いい,という名前のファイルがあって 上記コードはAAファイルに入力していて,フォルダ内に上記ファイル名以外の 任意の名前のファイル(たとえば,ウウ)を貼り付けてマクロを実行すると, ウウのデータをコピーしてAAに貼り付けるものです。 ここで,ウウを貼り付けたあと,マクロを実行しますと,それ以上マクロは実行でき なくなって誤操作防止ができます。 ここでですね,ウウを貼り付ける前の段階ではマクロを実行できないような設定は 作れますでしょうか。 ようするに, @AA,ああ,いい,以外のファイルを探しにいったが,見つからなかったので, その後のマクロ実行は中止。 AAA,ああ,いい,以外のファイル,ウウが見つかったので,上記のマクロを実行。 B一度マクロを実行してコピーしたので,その後はマクロは実行できない。 という感じにしたいのですが。 (サンパレス) ---- 実行済みのファイル名リストをどこかに書いておいて参照すれば良いのでは。 (通りすがり) ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/200807/20080725130903.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97004 documents and 608062 words.

訪問者:カウンタValid HTML 4.01 Transitional