2016-08-15 5 views
0

ボタンを押すと、コンピュータからファイルを選択してアイコンのようなオブジェクトとしてスプレッドシートに挿入できるようなVBAコードがあります。VBA - 隣り合わせにオブジェクトを挿入する

count = count + 1 
ActiveSheet.Shapes("Object 1").IncrementLeft 90*count 

、問題は、次のとおりです。

コードは、ボタンがクリックされるたびにカウントし、そのユーザーによって挿入されたそれぞれの新しいアイコンはすなわち、既存の1の右側に表示されるようになっています私はカウントを変更する方法を知らないので、ユーザーがスプレッドシートからオブジェクトを削除するたびに、カウントは1だけ減少します(挿入された次のオブジェクトはそのまま行になり、最初のオブジェクト)。私はイベントを使用すると仮定しますが、オブジェクトが削除されたときのイベントとは思われません。

アドバイスはありますか?

答えて

-1

削除の処理方法を教えてください。 あらかじめ削除するボタンを押すようにユーザーに指示することができます。 ユーザーがボタンを押すと、参照しているフィールドのオブジェクトの数が表示され、ユーザーが何かを開始するたびにスキャンを続けます。

どちらの方法でも、ユーザーが何かを開始するたびにトラッキングする方法が必要です。または、選択して追跡することもできます。ユーザーが各アクションを実行した後、ユーザーがオブジェクトの1つを選択した場合、IEが残っている数を確認します。

恐らく彼らは削除するためにそれを選択しているだけです。

+0

も試してみてください。http://www.tek-tips.com/viewthread.cfm?qid=1743784 – bdpolinsky

0

埋め込みファイルはOLEオブジェクトなので、カウントを維持する必要はありません。 OLEObjectsコレクションを使用してその場で計算できます。

他のActiveXオブジェクトがある場合は、xlOLEEmbedタイプの項目を繰り返し処理する必要があるかもしれません。

Count = 0 
For Each o In Sheet1.OLEObjects 
    If o.OLEType = xlOLEEmbed Then Count = Count + 1 
Next 
関連する問題