Excel (VBA) |
|
(Windows 11 Home : Microsoft 365)
sheet間でshapeのコピーをしますが、微妙にずれてしまいます。
投稿日時: 25/08/27 16:41:11
投稿者: suekunx
|
|---|---|
|
sheet間でshapeのコピーをしますが、微妙にずれてしまいます。
|
|
|
|
投稿日時: 25/08/27 16:58:50
投稿者: suekunx
|
|---|---|
|
dstSht.Paste
|
|
|
|
投稿日時: 25/08/27 17:53:10
投稿者: simple
|
|---|---|
|
(1)
For i = 1 To srcSht.Shapes.Count
Set shp = srcSht.Shapes(i) ' 挿入
.....として、エラーになったshpのshp.Typeをローカルウインドウで確認して、
それが何なのかを調べてみてはどうですか? それらを避けるなら Typeで判断して必要なものだけコピーすることになるでしょう。 |
|
|
|
投稿日時: 25/08/28 06:42:44
投稿者: suekunx
|
|---|---|
|
simple 様
|
|
|
|
投稿日時: 25/08/28 08:24:15
投稿者: simple
|
|---|---|
|
そのコントロールのTypeはそちらでわかったのでしょうから、(以下で そのTpe と書いています)
For i = 1 To srcSht.Shapes.Count
Set shp = srcSht.Shapes(i)
If shp.Type <> そのType Then
'処理
End If
のように、そのshapeのType以外の時だけ実行するように条件分岐すればよいのでは?
|
|
|
|
投稿日時: 25/08/28 08:54:23
投稿者: suekunx
|
|---|---|
|
ありがとうございます。
|
|
|
|
投稿日時: 25/08/28 12:40:39
投稿者: simple
|
|---|---|
|
(1)まず図形のズレについての当方のコメントへの回答をお願いします。
Sub test2()
Dim v
dim shp As Shape
For Each v In ActiveSheet.OLEObjects
v.Copy
Set shp = v.ShapeRange(1)
' こうすればshp はshapeオブジェクトなので、
' 既存の方法で位置を取得して、
・他シートに貼り付けたあとで、位置を調整すればどうでしょう。
Next
End Sub
私はいったんここまでとさせていただきます。 |
|
|
|
投稿日時: 25/08/28 14:37:12
投稿者: suekunx
|
|---|---|
|
ありがとうございます。
|
|
|
|
投稿日時: 25/08/28 17:18:43
投稿者: simple
|
|---|---|
|
印刷設定のコードで何をいいたいのか理解できません。すいません。
|
|
|
|
投稿日時: 25/08/29 10:20:04
投稿者: Suzu
|
|---|---|
|
サイズに関して
引用: Set myPSA = ThisWorkbook.Sheets("B-1出庫明細書").PageSetup
Set myPSB = wbNew.Sheets("Sheet1").PageSetup
これは、Sheet間 というよりは、別ブックの別シートなのではありませんか? そうなると、既定のスタイル にも影響を受ける可能性があります。 ・その他には、セルの幅・高さ、罫線 にも影響を受ける事があります。 ・複数モニター環境で、片側のモニターから片側のモニター への移動で モニターの 拡大/縮小 の パーセントが違うと 影響を受けた事があります。 ・Shape の数が多い場合、Shape がグループ化されている場合 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13263784038 バーコードコントロールについて 使うには、参照設定が必要なはず。 https://www.pc-koubou.jp/magazine/67288?srsltid=AfmBOopGZZlnlJKGN02PZvx3e98hntEmifU-2aS-umhaClSm37C10w3G 新ブックでは、参照設定がされていないのでは? そもそも、バーコードコントロールは Excelで使うコントロールではありません。 https://officesupportjp.github.io/blog/cl0m82yjq002zvovsh02539lo/ https://qiita.com/Umazular/items/9d879e0530629211d8d4 動作保証もされません。 別のコントロールを使用するなり自前で準備しましょう。 https://qiita.com/santarou6/items/d623417ea8ba33756108 それと・・直接関係はありませんが .Zoom = False ' ズーム倍率を無効化(これがないとFitToPagesが効かない)
.FitToPagesWide = 1 ' 横方向を1ページに収める
.FitToPagesTall = False ' 縦方向は制限しない(複数ページでもOK)
これらは、myPSB の値を定数で指定していますから、myPSA の設定とは異なる可能性があります。 そのなかで、他の値を同じにしても意味がありません。 |
|
|
|
投稿日時: 25/09/02 09:54:10
投稿者: suekunx
|
|---|---|
|
お世話になっております。
|
|
|
|
投稿日時: 25/09/02 10:45:35
投稿者: simple
|
|---|---|
|
印刷のズレの件ですが、コピー元とコピー先のシートは全く同じ形式のシートなんですか?
|
|
|
|
投稿日時: 25/09/02 13:14:21
投稿者: suekunx
|
|---|---|
|
ありがとうございます。
|
|



