• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:シートへのD&Dを禁止にする)

シートへのD&Dを禁止にする

ap_2の回答

  • ap_2
  • ベストアンサー率64% (70/109)
回答No.3

Dropでファイルを開くのは基本機能なので、禁止は難しそうですね。。。 おそらく、どこかでD&Dをキャンセルしているはずです。その前に処理が止まることで問題が起きるのなら、なるべくその処理を先に持ってきたらいいです。 まずは、どこまで進めばOKなのか確認してみてください。 Object.Clearみたいな方法でキャンセルされるなら、さっさとパス取得&クリア。もし、Dropイベントを完全に抜けないとダメなら、Application.Ontimeでメイン処理を遅延実行。Ontimeはスマートでよいかも。 'Ontime使用例 main終了直後にhogeが実行される Sub main()  Application.Ontime Now, "hoge" '並行処理されないので時間はNowでいい  MsgBox "main" End Sub Sub hoge()  MsgBox "hoge" End Sub

関連するQ&A

  • アクティブシートとは

    excel vbaの初心者です。 アクティブシートについて聞きます。 (1)マクロ実行中、ある時点では、アクティブシートはひとつだけですか、それとも 複数のシートがアクティブになっているということもありますか。 (2)今アクティブなものはどれかデバッグなどで認識することできますか。 (3)処理で次次に別のシートをアクティブにした場合、前のシートはアクティブでならなくなうのでしょうか。 以上宜しくお願いします。

  • VBAでシート挿入を禁止したい。

    エクセル2007で、ファイルを閉じるとその状態が全部保存されるように下記VBAを使ったファイルを作りました。 Private Sub Workbook_BeforeClose(Cancel As Boolean)  ThisWorkbook.Save End Sub ファイルのシート数は全部で6枚です。ファイルを開くとsheet5だけが表示します。マクロを有効にするとそのシートを非表示にしてsheet1からsheet4が表示するようにしてあります。 リボンは非表示にして操作できないようにしてあります。この状態でもファイルを開いている間に誰かがシート挿入タブ等でシートを挿入して閉じてしまうとその分も保存されてしまい、シートがどんどん増えてしまいます。ブックの保護をするとシート表示切り替えがうまくいかないみたいです。シート挿入タブを非表示にする方法はありますか。なければVBAでシート挿入禁止はどのように書くのでしょうか。

  • EXCEL VBA シート内の特定のセルに値が入…

    EXCEL VBA シート内の特定のセルに値が入力された際に処理を実行するプログラム EXCELシート内の特定のセルに値が入力された際に処理を実行するプログラムをEXCEL VBAで作成したいと考えています。 EXCELに計測データを取込み、このデータが設定値以外の場合のみ、トリガーを出す様なイメージで使いたいと思います。 どの様に考えれば良いでしょうか?サンプル等ありましたら紹介ください。 上記質問の”トリガー”について補足します。 あるセルに値が入力されたら、マクロを実行するという風にしたいという意味です。 単純にマクロ実行を手動で行うのでは無く、ある値が判定値以外の場合に他アプリケーションを操作したいという意味です。。

  • excelのシートからVBAを除いて書き出し

    特定のExcelのシート(以後、出力シート)だけを予め指定したファイルへexcel形式で書き出したいです。 そのとき、出力シートにはボタンやボタンに関連付けされたVBAプログラムがあるのですが、それらのボタンやシートに関連付けされたVBAは書き出さずに、純粋に各セルに記載されている内容と罫線情報だけを書き出したいです。 出力シートにはVBAを残したくないのが理由ですが、上記のような書き出しをするにはどのようにすればよいのでしょうか。

  • エクセル:ある任意のシートを除く他のシートの一括削除について

    エクセルVBAについての質問です。よろしくお願いします。 エクセルの「○○.xls」にたくさんのシートを作っています。 ◆それをある任意のシートだけを残して(リンクがあるのでそのシートの全部を値だけ貼り付けてから) ◆そのほかのシートを一括削除して、 ◆別の名前をつけて「デスクトップ」に保存 ◆「○○.xls」を他のPCに保存してもそのVBAを実行するとそちらの「デスクトップ」に保存できるというイメージです。 このようなVBAを教えていただけないでしょうか。 よろしくお願いいたします。

  • ExcelのVBAで3-D等高線のXYZ回転をする方法を教えてください

    ExcelのVBAで3-D等高線のXYZ回転をする方法を教えてください。 3-Dグラフは書式設定で、X,Y,Zの回転を設定できますが、 それをVBAからやろうとしています。 Worksheets("Sheet1").ChartObjects(1).Rotation = Worksheets("Sheet1").ChartObjects(1).Rotation + 1 大体こんな記述でできるかと想像していたのですが 「オブジェクトはこのプロパティまたはメソッドをサポートしていません」 といったエラーが出て実行できません。 別のプロパティ名なのかと探しているのですが、そうした情報も見つかりません。 ご存じの方は教えてください。

  • シートをコピーする方法

    エクセルのVBAで教えてください。 エクセルファイルAとエクセルファイルBがあります。 ・エクセルファイルAを、複製してエクセルファイルCを作成。 ・エクセルファイルBの「あ」シートをエクセルファイルCにコピー  ※「あ」シートは、エクセルファイルCに存在しない のですが、どのようにVBAを作成すればよいでしょうか? 私が素人過ぎて、誠に申し訳ないのですが、 具体的なソースで頂ければ大変助かりますので 宜しくお願いします。

  • フォルダ内全ファイルをシート毎に貼付方法について

    VBA仙人様ご教授お願い致します。 1フォルダに数十のログファイル(.txt)が格納されています。 1ファイルは3~5万行記述あります。 これを1つのExcelファイルにしたいと思っています。 VBA流れとして (1)ログ格納フォルダを選択 (2)ログファイル名を取得 (3)既存Excelファイルに(2)で取得したファイル名(.txt除いた)で順次シートを追加 (4)ログファイル=シートとなるようにファイル読み込み/貼り付け (5)ログファイルを閉じる VBAイメージ 格納フォルダ:C:\test \test内    :A001.txt,A002.txt,B003.txt・・・・・・・・Z051.txt(このフォルダにはログのみ格納) C:デスクトップ\集計マクロ.excel (VBAの記述のあるExcelシートにはSheet1のみが存在) VBA前 集計マクロ.excel/Sheet1 VBA実行後 集計マクロ.excel/Sheet1,A001,A002,B003,D004・・・・・・・・・Z051が追加、シート毎にログ情報記載 単一ファイルの読み込み/ファイル名をシート名に付与/情報コピペ/ファイル閉じについては、 作成できたのですが、複数ファイルの場合のファイル名を順次取得し、シート名として付与するなど objやValiant変数などで試行錯誤しましたが解決できず、こちらに質問されていただきました>< このVBAで作成されたシートからの集計マクロについては完成していますが、 その手前でつまづいています>< ご教授のほどお願い致します><

  • 「MFC40D.DLLがみつかりません」とでてしまいます

    VC++ Standard Edition 4.0を使ってデバッグモードでコンパイルしたプログラムを友人に渡し、起動すると 「プログラム開始エラー  必要なDLLファイルMFC40D.DLLが見つかりませんでした。」 とでて起動できませんでした。 私のコンピューターにあるMFC40D.DLLも渡してc:\wndows\system\にいれてもらっても同じメッセージが出るそうです。 どのようにしたら友人のパソコンでも実行できるようになるでしょうか?

  • Dドライブが開けません

    Dドライブを開こうとすると、 関連付けるアプリケーションの設定エラー ○○.htmlが見つかりません。 このプログラムは、種類が‘ファイル’のファイルを実行するために必要です。 と出てきてDドライブが開けません。どなたかアドバイスをお願いします。