戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
イベントのようなやり方

    [191373] イベントのようなやり方-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ みらくる -(2020/02/16(07:39))
    □U R L/

      教えて頂きたいと思いますがよろしくお願いします。

      入力用のシートと計算用シートがあります。
      入力用シートのあるセルを移動(cut)させると計算用シートと参照先と参照元
      のセル番地が変更します。
      一旦入力データを値削除してから新しいデータを入力するときに両シートでセル
      参照位置が違うので支障が出ます。
      そこで、移動操作を禁止する目的で、移動操作をしようとした時のタイミングで、
      メッセージボックスを表示させ警告する方法があるかご教授願います。イベント
      をネットで調べてみましたが、移動のタイミングでは該当ないようでした。




    [191374] Re[1]: イベントのようなやり方-

    記事引用/メール受信=ON■

    □投稿者/ よろずや -(2020/02/16(11:19))
    □U R L/
      Cut をできなくするコード
      
      Option Explicit
      Private WithEvents App As Excel.Application
      Private Sub App_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
          If Application.CutCopyMode = xlCut Then
              Application.CutCopyMode = False
          End If
      End Sub
      Private Sub Workbook_Open()
          Set App = Excel.Application
          App.EnableEvents = True
      End Sub
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191375] Re[2]: イベントのようなやり方-

    記事引用/メール受信=OFF■

    □投稿者/ みらくる -(2020/02/16(12:27))
    □U R L/

      よろずや様ご回答ありがとうございました。

      ビジュアルベーシックのオブジェクトのThisWorkbookのモジュールに
      回答いただいたコードを全部貼り付けました。
      するとセル選択→右クリック→切り取り→別のセル選択としましたら、
      貼り付けのアイコンが無効になっていますので移動はできなくなりました。

      あと、今回のコードでは次の方法では移動可能ですが、以下の場合にも
      移動できなくする方法があれば教えてください。

      セル選択→選択セルの境界付近にマウスポインタ移動→矢印4方向の記号表示
      →ドラッグの方法で別のセルに移動

      自作測量計算ソフトを初めて使うユーザーの中には、このような操作をして
      します方もおります。

      恐縮ですが、ご教授いただいたコードの意味を教えてくださると助かります。




    [191376] Re[3]: イベントのようなやり方-

    記事引用/メール受信=OFF■

    □投稿者/ ぴんく -(2020/02/16(13:04))
    □U R L/
      参考に
      Private Sub Workbook_Open()
          Set App = Excel.Application
          App.EnableEvents = True
          'セルのドラッグ・アンド・ドロップ編集を抑止
          App.CellDragAndDrop = False
      End Sub
      
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191377] Re[3]: イベントのようなやり方-

    記事引用/メール受信=OFF■

    □投稿者/ チオチモリン -(2020/02/16(13:08))
    □U R L/
      >ドラッグの方法で別のセルに移動
      
      Application.CellDragAndDrop = False
      で可能ですが、
      
      >このような操作をしてします方もおります。
      そういう操作は禁止である旨の周知を徹底する方が賢明と思います。




    [191378] Re[4]: イベントのようなやり方-

    記事引用/メール受信=OFF■

    □投稿者/ よろずや -(2020/02/16(13:43))
    □U R L/
      >教授いただいたコードの意味を教えてくださると助かります。
      
      Private Sub Worksheet_SelectionChange(ByVal Target As Range)
          If Application.CutCopyMode = xlCut Then
              Application.CutCopyMode = False
          End If
      End Sub
      お察しの通り、セル選択→右クリック→切り取り→別のセル選択で、
      切り取りを無効にしています。
      
      先ほどのコードは、それを特定のシートのみではなく、どのブックでも働くようにしたバージョンです。
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191379] Re[5]: イベントのようなやり方-

    記事引用/メール受信=OFF■

    □投稿者/ みらくる -(2020/02/16(14:55))
    □U R L/
      ピンク様、チオチモリン様、よろずや様
      ご回答誠にありがとうございました。
      
      皆様のコードを使用して、実用的と思われる以下のコードにしてみました。
      (ビジュアルベーシックのオブジェクトのThisWorkbookのモジュールへ入力)
      動作確認はしましたが、何か問題がある点等あればご指摘願います。
      
      Option Explicit
      
      '変数宣言
      Private WithEvents App As Excel.Application
      Private Sub App_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
          '切り取り操作後のセルの貼付け抑止
          If Application.CutCopyMode = xlCut Then
              Application.CutCopyMode = False
          End If
      End Sub
      
      Private Sub Workbook_Open()
          Set App = Excel.Application
          App.EnableEvents = True
          'セルのドラッグ・アンド・ドロップ編集を抑止
          App.CellDragAndDrop = False
      End Sub
      
      Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
          Set App = Excel.Application
          App.EnableEvents = True
          'セルのドラッグ・アンド・ドロップ編集抑止を解除(別ブックで有効とするため)
          App.CellDragAndDrop = True
      End Sub
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191382] Re[6]: イベントのようなやり方-

    解決!!ありがとうございました! / 記事引用/メール受信=OFF■

    □投稿者/ みらくる -(2020/02/16(19:53))
    □U R L/
      最終的に以下のコードとしました。
      
      計算方法手動とする理由は、測量計算ブックのファイルサイズが大きく、計算
      方法自動とすると計算に時間がかかるため、メニューシートで計算実行ボタン
      を押したときだけ再計算実行しているためです。
      このコードを測量計算各ブックのThisWorkbookのモジュールにコピーして使い
      まわすことにしました。
      
      Option Explicit
      
      'オブジェクト変数宣言(これにより特定シートのみでなく、どのブックでも働く)
      Private WithEvents App As Excel.Application
      
      'ワークシートをアクティブにした時に発生するイベント
      Private Sub App_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
          '切り取り操作後のセルの貼付け抑止
          If Application.CutCopyMode = xlCut Then
              Application.CutCopyMode = False
          End If
      End Sub
      
      'ブック保存せずに閉じる前に発生するイベント
      'このプロシージャがないと保存せず閉じた場合にセルのドラッグ・アンド・ドロップ編集抑止を解除できない
      Private Sub App_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean)
          'オブジェクト変数AppにExcel.Applicationへの参照を設定
          Set App = Excel.Application
          'イベントの発生を有効にする
          App.EnableEvents = True
          'セルのドラッグ・アンド・ドロップ編集抑止を解除(別ブックで有効とするため)
          App.CellDragAndDrop = True
          '計算方法手動に設定
          Application.Calculation = xlManual
      End Sub
      
      'ブックをオープンした時に発生するイベント
      Private Sub Workbook_Open()
          'オブジェクト変数AppにExcel.Applicationへの参照を設定
          Set App = Excel.Application
          'イベントの発生を有効にする
          App.EnableEvents = True
          'セルのドラッグ・アンド・ドロップ編集を抑止
          App.CellDragAndDrop = False
          '計算方法手動に設定
          Application.Calculation = xlManual
      End Sub
      
      'ブック保存前に発生するイベント
      Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
          'オブジェクト変数AppにExcel.Applicationへの参照を設定
          Set App = Excel.Application
          'イベントの発生を有効にする
          App.EnableEvents = True
          'セルのドラッグ・アンド・ドロップ編集抑止を解除(別ブックで有効とするため)
          App.CellDragAndDrop = True
          '計算方法手動に設定
          Application.Calculation = xlManual
      End Sub
      
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G