We will be migrating from Ask to Discourse on the first week of August, read the details here

質問する
0

シートの移動 VBA

質問日 2020-10-31 10:19:35 +0200

Dagiri のGravatar画像

updated 2020-11-03 03:16:02 +0200

nogajun のGravatar画像

下のコードでシートを移動しようとしたのですが、エラーが出ないのにも関わらず、上手くできません。

OPTION VBASupport 1
Sub Main
  Worksheets("Sheet2").Move (After :=Workbooks("無題 2.ods").Worksheets("Sheet1"))
End Sub

引数を設定せず、新規シートに移動はできました。

MoveをCopyにした時に、コピーはできました。

何故でしょうか?

edit retag flag offensive close merge delete

1 Answer

0

回答日 2020-11-01 07:40:58 +0200

himajin100000 のGravatar画像

updated 2020-11-01 07:52:00 +0200

Excel側の挙動を確認してないけど、Excel側ではその移動が起き、LibreOffice側で起きないならLibreOffice側のバグ。

https://opengrok.libreoffice.org/xref...

ここのgetModel()が返すのは、そのSpreadsheet(Sheet1とかSheet2とか)が属するSpreadsheetDocument (book1.xlsとか)

だから例えば、yyy.odsにAAAシート、BBBシート、Sheet1シートがこの順に並んでいて、xxx.odsにAAAシートがあって、yyy.ods側に格納されるマクロがあるとする。わかりやすさのためにyyy.odsのAAAシートのA1に1、xxx.odsのAAAシートのA1に2を入力した状態で以下のコードを実行したとする。

  Worksheets("Sheet1").Move (After :=Workbooks("xxxx.ods").Worksheets("AAA"))

結果、yyy.ods側の並び順がAAAシート、Sheet1シート、BBBシートになる。このとき、yyy.odsのAAAシートには元々と同じく1が入っている、かな?

edit flag offensive delete link もっと

Comments

Excel 側では、引数を綴じている()を外せば正常に動作しました。 LibreOffice側で同様にしても、動作はしませんでした。(エラーも出ません)。

バグということで、一旦収めます。

ありがとうございます。

Dagiri のGravatar画像Dagiri ( 2020-11-03 08:16:45 +0200 )edit
ログイン/サインアップして回答する

質問ツール

1 follower

Stats

Asked: 2020-10-31 10:19:35 +0200

Seen: 63 times

Last updated: Nov 03 '20