Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


13188 / 13646 ツリー ←次へ | 前へ→

【6038】ドロップダウンボックスのコピーペースト ヤマ 03/6/13(金) 10:47 質問
【6045】Re:ドロップダウンボックスのコピーペースト ヤマ 03/6/13(金) 16:32 質問
【6048】Re:ドロップダウンボックスのコピーペースト ichinose 03/6/13(金) 16:59 回答
【6051】Re:ドロップダウンボックスのコピーペースト ヤマ 03/6/13(金) 17:20 お礼
【6087】Re:ドロップダウンボックスのコピーペースト ヤマ 03/6/16(月) 12:49 質問
【6092】Re:ドロップダウンボックスのコピーペースト ichinose 03/6/16(月) 13:33 回答
【6094】Re:ドロップダウンボックスのコピーペースト ヤマ 03/6/16(月) 14:03 質問
【6096】Re:ドロップダウンボックスのコピーペースト ichinose 03/6/16(月) 15:10 回答
【6097】Re:ドロップダウンボックスのコピーペースト ヤマ 03/6/16(月) 15:23 お礼
【6146】Re:ドロップダウンボックスのコピーペースト ヤマ 03/6/17(火) 17:04 質問
【6152】Re:ドロップダウンボックスのコピーペースト ichinose 03/6/17(火) 18:57 発言
【6163】Re:ドロップダウンボックスのコピーペースト ヤマ 03/6/18(水) 8:58 質問
【6167】Re:ドロップダウンボックスのコピーペースト こうちゃん 03/6/18(水) 10:07 発言
【6170】Re:ドロップダウンボックスのコピーペースト ヤマ 03/6/18(水) 10:47 質問
【6174】Re:ドロップダウンボックスのコピーペースト こうちゃん 03/6/18(水) 11:56 発言
【6175】Re:ドロップダウンボックスのコピーペースト ヤマ 03/6/18(水) 11:58 質問
【6183】Re:ドロップダウンボックスのコピーペースト こうちゃん 03/6/18(水) 13:12 発言
【6190】Re:ドロップダウンボックスのコピーペースト ヤマ 03/6/18(水) 15:25 お礼
【6191】Re:ドロップダウンボックスのコピーペースト ichinose 03/6/18(水) 16:06 発言
【6201】Re:ドロップダウンボックスのコピーペースト ヤマ 03/6/19(木) 11:03 質問
【6213】Re:ドロップダウンボックスのコピーペースト ichinose 03/6/19(木) 13:29 発言
【6606】Re:ドロップダウンボックスのコピーペースト ヤマ 03/7/14(月) 16:58 質問
【6612】Re:ドロップダウンボックスのコピーペースト ichinose 03/7/15(火) 9:56 発言
【6613】Re:ドロップダウンボックスのコピーペースト ヤマ 03/7/15(火) 9:58 質問
【6633】Re:ドロップダウンボックスのコピーペースト ichinose 03/7/15(火) 18:05 発言
【6637】Re:ドロップダウンボックスのコピーペースト ヤマ 03/7/16(水) 12:24 お礼

【6038】ドロップダウンボックスのコピーペースト
質問  ヤマ E-MAIL  - 03/6/13(金) 10:47 -

引用なし
パスワード
   Q&Aを作るためにあらかじめ定型化されている答えはドロップダウンボックスに入れておこうと思って以下のように書いてみました。


M.DropDowns.Add(172.5, 177.75, 464.25, 15).Select
M.Rows(15).RowHeight = 14.25

With Selection
.ListFillRange = "LIST!$A$1:$A$11"
.LinkedCell = 16
.DropDownLines = 11
.Display3DShading = True
End With

Dim D2 As Variant
D2 = 21
Do Until D2 > 500
  If M.Cells(D2, 3) = "REASON:" Then
  M.Shapes("Drop Down 2").Select
  Selection.Copy
  M.Cells(D2, 3).Select
  ActiveSheet.DropDowns.Add(172.5, 177.75, 464.25, 15).Select
  ActiveSheet.Paste
  Selection.ShapeRange.IncrementLeft 1.5
  Selection.ShapeRange.IncrementTop -10.5
  Rows(D2).RowHeight = 14.5
  End If
  D2 = D2 + 6
Loop

こうしたところ一番初めのドロップダウンは正しいところに貼り付けられるのですがその下のものは最初に貼り付けられているドロップダウンの近くにペーストされてしまいます。ドロップダウンの場所を指定して動いたりしないように設定はできるのでしょうか?おわかりの方、教えてください。

【6045】Re:ドロップダウンボックスのコピーペース...
質問  ヤマ E-MAIL  - 03/6/13(金) 16:32 -

引用なし
パスワード
   If M.Range("C12") <> "NO TRANSACTION TO BE REPORTED" Then
Do Until D2 > 500
ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=True, DisplayAsIcon:=False, Left:=192, Top:=180, Width:=450, Height:=14).Select
If M.Cells(D2, 3) = "REASON:" Then
Selection.Copy
M.Cells(D2, 3).Select
ActiveSheet.Paste
End If
D2 = D2 + 6
Loop
End If

以上のようにしてみるとちょうどいい場所にコンボボックスが出来上がってくれますが、コンボボックスの中身の設定はどうしたらいいでしょうか?
よろしくお願いします。

【6048】Re:ドロップダウンボックスのコピーペース...
回答  ichinose  - 03/6/13(金) 16:59 -

引用なし
パスワード
   ▼ヤマ さん:
こんにちは。暑いですねえ、大して仕事してないのに暑い・・・。
Activexに変えたんですね。
Sub test()
  Dim combo As Object
  Set combo = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=True, _
    DisplayAsIcon:=False, Left:=192, Top:=180, Width:=450, Height:=14)
  With combo
   .ListFillRange = "$A$1:$A$11"
   .LinkedCell = "b2"
   End With
End Sub

とすると、セルA1〜A11の内容がリストメンバになり、
選択したメンバがセルB2に入ります。
方法は、他にもいろいろありますが、一例です。

【6051】Re:ドロップダウンボックスのコピーペース...
お礼  ヤマ E-MAIL  - 03/6/13(金) 17:20 -

引用なし
パスワード
   Ichinoseさん、
どうもありがとうございます!
できちゃいました!
本当に助かりました!
もう一度ありがとうございます!

湿度が高くてムシムシしますが
お体に気をつけてまた何かあったら助けてくださいね。

【6087】Re:ドロップダウンボックスのコピーペース...
質問  ヤマ E-MAIL  - 03/6/16(月) 12:49 -

引用なし
パスワード
   こんにちは。
もうひとつ伺いたいのですが
Listfillrangeの中に入っているもののをたとえば、A2の表示したまま
コピー・ペーストする場合にはどうしたらいいのでしょうか?
たびたびすみませんがよろしくお願いします。

▼ヤマ さん:
>Ichinoseさん、
>どうもありがとうございます!
>できちゃいました!
>本当に助かりました!
>もう一度ありがとうございます!
>
>湿度が高くてムシムシしますが
>お体に気をつけてまた何かあったら助けてくださいね。

【6092】Re:ドロップダウンボックスのコピーペース...
回答  ichinose  - 03/6/16(月) 13:33 -

引用なし
パスワード
   ▼ヤマ さん:
こんにちは。

>もうひとつ伺いたいのですが
>Listfillrangeの中に入っているもののをたとえば、A2の表示したまま
>コピー・ペーストする場合にはどうしたらいいのでしょうか?
>たびたびすみませんがよろしくお願いします。
'=====================================================
Sub test1()
  Range("a1").Copy Range("d1")
End Sub
ということでいいのでしょうか?
それとも
'=====================================================
Sub test2()
  Range("d1").Value = "'" & Range("a1").Text
End Sub
ということでしょうか?

他には・・・・。
値と書式だけコピー&ベースト?

【6094】Re:ドロップダウンボックスのコピーペース...
質問  ヤマ E-MAIL  - 03/6/16(月) 14:03 -

引用なし
パスワード
   If M.Range("C12") <> "NO TRANSACTION TO BE REPORTED" Then
Do Until D2 > 500
Dim CMB2 As Object
M.Rows(15).RowHeight = 18.25
Set CMB2 = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=True, DisplayAsIcon:=False, Left:=192, Top:=180, Width:=450, Height:=18)
  With CMB2
   .ListFillRange = "LIST!$A$1:$A$11"
   .LinkedCell = M.Cells(D2, 10)
  End With
CMB2.Select
If M.Cells(D2, 3) = "REASON:" Then
Selection.Copy
M.Cells(D2, 3).Select
ActiveSheet.Paste
M.Rows(D2).RowHeight = 18.25
End If
D2 = D2 + 6
Loop
End If


上記のようなループで回しているのですが、一番最初のコンボボックスをセットする際に何も指定しないとコンボボックスには何も表示されていないと思いますが
これを一番上にあるアイテムを表示したいのです。(Please Selectという言葉が入っています)
Please Selectを表示させたままloopでコピーペーストしていきたいのですが
どうやったらいいんでしょうか?お手数おかけします。

【6096】Re:ドロップダウンボックスのコピーペース...
回答  ichinose  - 03/6/16(月) 15:10 -

引用なし
パスワード
   ▼ヤマ さん:
こんにちは。
>If M.Range("C12") <> "NO TRANSACTION TO BE REPORTED" Then
>Do Until D2 > 500
>Dim CMB2 As Object
>M.Rows(15).RowHeight = 18.25
>Set CMB2 = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=True, DisplayAsIcon:=False, Left:=192, Top:=180, Width:=450, Height:=18)
>  With CMB2
>   .ListFillRange = "LIST!$A$1:$A$11"
>   .LinkedCell = M.Cells(D2, 10)
   .object.listindex=0  'でいいと思います
>  End With
>CMB2.Select
>If M.Cells(D2, 3) = "REASON:" Then
>Selection.Copy
>M.Cells(D2, 3).Select
>ActiveSheet.Paste
>M.Rows(D2).RowHeight = 18.25
>End If
>D2 = D2 + 6
>Loop
>End If
>
>
>上記のようなループで回しているのですが、一番最初のコンボボックスをセットする際に何も指定しないとコンボボックスには何も表示されていないと思いますが
>これを一番上にあるアイテムを表示したいのです。(Please Selectという言葉が入っています)
>Please Selectを表示させたままloopでコピーペーストしていきたいのですが
>どうやったらいいんでしょうか?お手数おかけします。

【6097】Re:ドロップダウンボックスのコピーペース...
お礼  ヤマ E-MAIL  - 03/6/16(月) 15:23 -

引用なし
パスワード
   できました。
たびたびすみませんでした。ありがとうございます。

▼ichinose さん:
>▼ヤマ さん:
>こんにちは。
>>If M.Range("C12") <> "NO TRANSACTION TO BE REPORTED" Then
>>Do Until D2 > 500
>>Dim CMB2 As Object
>>M.Rows(15).RowHeight = 18.25
>>Set CMB2 = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=True, DisplayAsIcon:=False, Left:=192, Top:=180, Width:=450, Height:=18)
>>  With CMB2
>>   .ListFillRange = "LIST!$A$1:$A$11"
>>   .LinkedCell = M.Cells(D2, 10)
>   .object.listindex=0  'でいいと思います
>>  End With
>>CMB2.Select
>>If M.Cells(D2, 3) = "REASON:" Then
>>Selection.Copy
>>M.Cells(D2, 3).Select
>>ActiveSheet.Paste
>>M.Rows(D2).RowHeight = 18.25
>>End If
>>D2 = D2 + 6
>>Loop
>>End If
>>
>>
>>上記のようなループで回しているのですが、一番最初のコンボボックスをセットする際に何も指定しないとコンボボックスには何も表示されていないと思いますが
>>これを一番上にあるアイテムを表示したいのです。(Please Selectという言葉が入っています)
>>Please Selectを表示させたままloopでコピーペーストしていきたいのですが
>>どうやったらいいんでしょうか?お手数おかけします。

【6146】Re:ドロップダウンボックスのコピーペース...
質問  ヤマ E-MAIL  - 03/6/17(火) 17:04 -

引用なし
パスワード
   度々です。
Dim CMB As Object
Set CMB = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=True, DisplayAsIcon:=False, Left:=192, Top:=180, Width:=450, Height:=18)
  With CMB
   .ListFillRange = "LIST!$A$1:$A$11"
   .LinkedCell = M.Cells(D, 10)
   .Object.ListIndex = 0
   End With
   CMB.Select

とすることでコンボボックスの設定をしているのですが最初に作るコンボボックスをrangeの形で指定することはできるのでしょうか?このままだとPCの設定によって使う人によっては微妙なずれが出てきてしまうのです。幸いにも必ずB19というRANGEに統一しているのでどのシートでもこれさえできれば対応可能なのですが。
お助けください。

【6152】Re:ドロップダウンボックスのコピーペース...
発言  ichinose  - 03/6/17(火) 18:57 -

引用なし
パスワード
   ▼ヤマ さん:
こんばんは。
>度々です。
>Dim CMB As Object
>Set CMB = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=True, DisplayAsIcon:=False, Left:=192, Top:=180, Width:=450, Height:=18)
>  With CMB
>   .ListFillRange = "LIST!$A$1:$A$11"
>   .LinkedCell = M.Cells(D, 10)
>   .Object.ListIndex = 0
>   End With
>   CMB.Select
>
>とすることでコンボボックスの設定をしているのですが最初に作るコンボボックスをrangeの形で指定することはできるのでしょうか?

すみません、この意味が・・・、20分考えましたが、わかりませんでした。
理解力がなくて・・・。
具体的に教えてくれませんか?

【6163】Re:ドロップダウンボックスのコピーペース...
質問  ヤマ E-MAIL  - 03/6/18(水) 8:58 -

引用なし
パスワード
   わかりづらくて申し訳ありません。
Set CMB = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=True, DisplayAsIcon:=False, Left:=192, Top:=180, Width:=450, Height:=18)
でコンボボックスができる位置を指定したいのですがその場合どうしたらいいでしょうか?ということでした。
よろしくお願いします。


>>度々です。
>>Dim CMB As Object
>>Set CMB = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=True, DisplayAsIcon:=False, Left:=192, Top:=180, Width:=450, Height:=18)
>>  With CMB
>>   .ListFillRange = "LIST!$A$1:$A$11"
>>   .LinkedCell = M.Cells(D, 10)
>>   .Object.ListIndex = 0
>>   End With
>>   CMB.Select
>>
>>とすることでコンボボックスの設定をしているのですが最初に作るコンボボックスをrangeの形で指定することはできるのでしょうか?
>
>すみません、この意味が・・・、20分考えましたが、わかりませんでした。
>理解力がなくて・・・。
>具体的に教えてくれませんか?

【6167】Re:ドロップダウンボックスのコピーペース...
発言  こうちゃん E-MAIL  - 03/6/18(水) 10:07 -

引用なし
パスワード
   ヤマさん、ichinoseさん、こんにちは

もしかして、こんなこと?

Set CMB = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=True, DisplayAsIcon:=False, Left:=Range("B19").Left, Top:=Range("B19").Top, Width:=Range("B19").Width, Height:=Range("B19").Height)

全然ちがってたらごめんなさい。

【6170】Re:ドロップダウンボックスのコピーペース...
質問  ヤマ E-MAIL  - 03/6/18(水) 10:47 -

引用なし
パスワード
   ありがとうございます、こうちゃんさん。
どうもB19あたりにできあがってしまいます。

そもそもよくわかっていないのですがこのLEFT/TOP/WIDTH/HEIGHTっていうのは
どういう単位であらわしているものなのですか?

僕のpcでこのマクロを動かすとちょうどいい場所にコンボボックスがADDされるのですが他の人のPCですと微妙にずれるんです。なので決まったRANGEにコンボボックスを作成したほうが良いかと思ったのです。この微妙にずれる原因を直したほうが早道ならそうしたいのですが考えられる原因としては何があるでしょうか?フォントとかかとおもって見てみたのですがそうではないようです。


▼こうちゃん さん:
>ヤマさん、ichinoseさん、こんにちは
>
>もしかして、こんなこと?
>
>Set CMB = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=True, DisplayAsIcon:=False, Left:=Range("B19").Left, Top:=Range("B19").Top, Width:=Range("B19").Width, Height:=Range("B19").Height)
>
>全然ちがってたらごめんなさい。

【6174】Re:ドロップダウンボックスのコピーペース...
発言  こうちゃん E-MAIL  - 03/6/18(水) 11:56 -

引用なし
パスワード
   ヤマさん、こんにちは
>どうもB19あたりにできあがってしまいます。
はい、B19に重ねて作るように指定してあります。

>そもそもよくわかっていないのですがこのLEFT/TOP/WIDTH/HEIGHTっていうのは
>どういう単位であらわしているものなのですか?
以下はHELPの抜粋です。
オブジェクトの高さまたは幅をポイント単位で指定します。
1 ポイントは、1/72 インチです。

>僕のpcでこのマクロを動かすとちょうどいい場所にコンボボックスがADDされるのですが他の人のPCですと微妙にずれるんです。なので決まったRANGEにコンボボックスを作成したほうが良いかと思ったのです。この微妙にずれる原因を直したほうが早道ならそうしたいのですが考えられる原因としては何があるでしょうか?フォントとかかとおもって見てみたのですがそうではないようです。

「決まったRANGE」の意味を「範囲」として受け取って、以前の書き込みに
>幸いにも必ずB19というRANGEに統一
という記載がありましたので、B19の位置に作成してみたのですが、解釈が違いましたか?

【6175】Re:ドロップダウンボックスのコピーペース...
質問  ヤマ E-MAIL  - 03/6/18(水) 11:58 -

引用なし
パスワード
   申し訳ありません!
錯乱してしまって変なことを書いてしまいました。
B19にできるはずのものがA19あたりにできあがってしまうということを
申し上げたかったんです。A19とA20の間あたりというのが正確な場所です。
勘違いをお許しください。


▼こうちゃん さん:
>ヤマさん、こんにちは
>>どうもB19あたりにできあがってしまいます。
>はい、B19に重ねて作るように指定してあります。
>
>>そもそもよくわかっていないのですがこのLEFT/TOP/WIDTH/HEIGHTっていうのは
>>どういう単位であらわしているものなのですか?
>以下はHELPの抜粋です。
>オブジェクトの高さまたは幅をポイント単位で指定します。
>1 ポイントは、1/72 インチです。
>
>>僕のpcでこのマクロを動かすとちょうどいい場所にコンボボックスがADDされるのですが他の人のPCですと微妙にずれるんです。なので決まったRANGEにコンボボックスを作成したほうが良いかと思ったのです。この微妙にずれる原因を直したほうが早道ならそうしたいのですが考えられる原因としては何があるでしょうか?フォントとかかとおもって見てみたのですがそうではないようです。
>
>「決まったRANGE」の意味を「範囲」として受け取って、以前の書き込みに
>>幸いにも必ずB19というRANGEに統一
>という記載がありましたので、B19の位置に作成してみたのですが、解釈が違いましたか?

【6183】Re:ドロップダウンボックスのコピーペース...
発言  こうちゃん E-MAIL  - 03/6/18(水) 13:12 -

引用なし
パスワード
   ヤマさん、こんにちは

>申し訳ありません!
>錯乱してしまって変なことを書いてしまいました。
>B19にできるはずのものがA19あたりにできあがってしまうということを
>申し上げたかったんです。A19とA20の間あたりというのが正確な場所です。
>勘違いをお許しください。

えと、こちらで試験するとB19にぴたり重なります。
Excel2000、Excel2002、WinNT、Win2000の組み合わせの環境で試験しました。

現象が再現できませんので困りました。どうしましょ?

B19の指定を他に変えてもおなじですか?

【6190】Re:ドロップダウンボックスのコピーペース...
お礼  ヤマ E-MAIL  - 03/6/18(水) 15:25 -

引用なし
パスワード
   他のRANGEを指定してもなぜか左に寄るようになってしまいます。
なぜでしょう・・・。ちょっとのずれなので気にしなければ気にしないで
大丈夫なんですが・・・。
実物も見せずに変な質問ばかりして済みませんでした。
ありがとうございました。

【6191】Re:ドロップダウンボックスのコピーペース...
発言  ichinose  - 03/6/18(水) 16:06 -

引用なし
パスワード
   ▼ヤマ さん:
こうちゃんさん、フォローありがとうございます。
ツリー見て、意味がやっとわかりました(駄目ですねえ)。

>他のRANGEを指定してもなぜか左に寄るようになってしまいます。

これって、WidthとHeightに+2ぐらいしとくと何とかなる話ですか?

Set CMB = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", _
    Link:=True, DisplayAsIcon:=False, _
    Left:=Range("B19").Left, _
    Top:=Range("B19").Top, _
    Width:=Range("B19").Width + 2, _
    Height:=Range("B19").Height + 2)

違いました?

【6201】Re:ドロップダウンボックスのコピーペース...
質問  ヤマ E-MAIL  - 03/6/19(木) 11:03 -

引用なし
パスワード
   みなさん、
いろいろありがとうございました。
ようやく解決しましてEXCELの設定でフォントが違っていたのが問題でした。
他の方のpcの設定を僕のものと同じにしたところあるべきところにペーストされました。

ひどく初歩的な質問なのですが何かエラーがあったときに黄色くなって止まるかと思うんですが、デバッグにならずにそのままあたかも停止ボタンをおしたかのようになってしまう人もいるんですがその設定はどこで変えたらいいんでしょうか?

【6213】Re:ドロップダウンボックスのコピーペース...
発言  ichinose  - 03/6/19(木) 13:29 -

引用なし
パスワード
   ▼ヤマ さん:
こんにちは。
>みなさん、
>いろいろありがとうございました。
>ようやく解決しましてEXCELの設定でフォントが違っていたのが問題でした。
>他の方のpcの設定を僕のものと同じにしたところあるべきところにペーストされました。
>
>ひどく初歩的な質問なのですが何かエラーがあったときに黄色くなって止まるかと思うんですが、デバッグにならずにそのままあたかも停止ボタンをおしたかのようになってしまう人もいるんですがその設定はどこで変えたらいいんでしょうか?
プログラムをエラー個所でトラップさせないということですよね?(意味があってるか
心配)

実行させるプロシジャーの頭で
on error resume next
というステートメントを入れると
エラーのあるコードで止まりません。

【6606】Re:ドロップダウンボックスのコピーペース...
質問  ヤマ E-MAIL  - 03/7/14(月) 16:58 -

引用なし
パスワード
   こんにちは。
こちらで教えていただいたマクロに関しては正常に動いているのですが
なんだかドロップダウンがいくつもあると開くのが遅かったりプリントするのに時間がかかったりします。excel上でコントロールボックスからドロップダウンとかを足した場合には普通の速さで処理できるのですがVBAでドロップダウンボックスを足した場合には遅くなってしまうのでしょうか?速くする方法をご存知でしたらお教えください。よろしくお願いします。

【6612】Re:ドロップダウンボックスのコピーペース...
発言  ichinose  - 03/7/15(火) 9:56 -

引用なし
パスワード
   ▼ヤマ さん:
こんにちは。

>こちらで教えていただいたマクロに関しては正常に動いているのですが
>なんだかドロップダウンがいくつもあると開くのが遅かったりプリントするのに時間がかかったりします。excel上でコントロールボックスからドロップダウンとかを足した場合には普通の速さで処理できるのですがVBAでドロップダウンボックスを足した場合には遅くなってしまうのでしょうか?速くする方法をご存知でしたらお教えください。よろしくお願いします。

シート上にコンボボックスをどのくらい作った場合の現象でしょうか?
こちらでも再現したいので、数を教えてください。
それと同じ数を手動で作成した場合は、「遅い」ということが起きないのですか?

【6613】Re:ドロップダウンボックスのコピーペース...
質問  ヤマ E-MAIL  - 03/7/15(火) 9:58 -

引用なし
パスワード
   こんにちは。いつもすみません。
極端な話、コンボボックスが一個でもあるとプレビューや印刷が2分ほどかかって遅くなるんです。手で作った場合にはさっと印刷ができるのですが・・・


▼ichinose さん:
>▼ヤマ さん:
>こんにちは。
>
>>こちらで教えていただいたマクロに関しては正常に動いているのですが
>>なんだかドロップダウンがいくつもあると開くのが遅かったりプリントするのに時間がかかったりします。excel上でコントロールボックスからドロップダウンとかを足した場合には普通の速さで処理できるのですがVBAでドロップダウンボックスを足した場合には遅くなってしまうのでしょうか?速くする方法をご存知でしたらお教えください。よろしくお願いします。
>
>シート上にコンボボックスをどのくらい作った場合の現象でしょうか?
>こちらでも再現したいので、数を教えてください。
>それと同じ数を手動で作成した場合は、「遅い」ということが起きないのですか?

【6633】Re:ドロップダウンボックスのコピーペース...
発言  ichinose  - 03/7/15(火) 18:05 -

引用なし
パスワード
   ▼ヤマ さん:
こんにちは。
>極端な話、コンボボックスが一個でもあるとプレビューや印刷が2分ほどかかって遅くなるんです。手で作った場合にはさっと印刷ができるのですが・・・
すみません、返事が遅くなりました。
新規ブックに以下のコードでコンボホックスを作成しました。

'====================================
Sub main()
idx = 20
Do While idx <= 1000
  Call test(idx)
  idx = idx + 20
  Loop
End Sub
'======================================================================
Sub test(idx)
  Dim combo As Object
  Set combo = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=True, _
    DisplayAsIcon:=False, Left:=100, Top:=idx, Width:=450, Height:=14)
  With combo
   .ListFillRange = "$A$1:$A$11"
   .LinkedCell = "b2"
   End With
End Sub

しかし、印刷(印刷ダイアログが表示されるまでの時間)やプレビュー等は迅速に行われていました。
何度か保存/読み込みを繰り返しましたが、大きな変化はありませんでした。
ちなみにシートを保護した場合、印刷やプレビューが若干遅くなりましたが
数秒でした。

コントロールの不可以外も調べてみたらどうでしょうか?
回答でなくて、すみません。

【6637】Re:ドロップダウンボックスのコピーペース...
お礼  ヤマ E-MAIL  - 03/7/16(水) 12:24 -

引用なし
パスワード
   ichinoseさん、いつもありがとうございます。
やはりexcelの問題なんでしょうか。再インストールもしてみたんですが
状況は変わりません・・・・。
会社のPCなのでヘルプデスクの方にみてもらうことにしました。
ご面倒おかけしましてすみませんでした。


▼ichinose さん:
>▼ヤマ さん:
>こんにちは。
>>極端な話、コンボボックスが一個でもあるとプレビューや印刷が2分ほどかかって遅くなるんです。手で作った場合にはさっと印刷ができるのですが・・・
>すみません、返事が遅くなりました。
>新規ブックに以下のコードでコンボホックスを作成しました。
>
>'====================================
>Sub main()
>idx = 20
>Do While idx <= 1000
>  Call test(idx)
>  idx = idx + 20
>  Loop
>End Sub
>'======================================================================
>Sub test(idx)
>  Dim combo As Object
>  Set combo = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=True, _
>    DisplayAsIcon:=False, Left:=100, Top:=idx, Width:=450, Height:=14)
>  With combo
>   .ListFillRange = "$A$1:$A$11"
>   .LinkedCell = "b2"
>   End With
>End Sub
>
>しかし、印刷(印刷ダイアログが表示されるまでの時間)やプレビュー等は迅速に行われていました。
>何度か保存/読み込みを繰り返しましたが、大きな変化はありませんでした。
>ちなみにシートを保護した場合、印刷やプレビューが若干遅くなりましたが
>数秒でした。
>
>コントロールの不可以外も調べてみたらどうでしょうか?
>回答でなくて、すみません。

13188 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free