質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

5364閲覧

GASのautoResizeColumnsで列幅が文字数より狭い

nical

総合スコア1

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2022/08/14 22:21

GASでデータを抽出した後、autoResizeColumnsをしたが、文字数より
狭い列幅に調整されてしまします。

・実現したいこと
データを抽出後、文字数に合わせて列幅を調整する。

発生している問題
データを抽出後、autoResizeColumnsをしたが、文字幅よりも狭い列幅に調整されてしまう。

言語名
GAS

ソースコード
function inPut() {

let ss = SpreadsheetApp.openById("1kruk40QI9TtAtMX0e27DR38GeTpu-gqWiyj5-3_gaxI");

let sheet2 = ss.getSheetByName('検索');

if (sheet2.getRange('J5').getValue() !== "") {
myFunction();

}
}

function myFunction() {

let ss = SpreadsheetApp.openById("1kruk40QI9TtAtMX0e27DR38GeTpu-gqWiyj5-3_gaxI");

let sheet2 = ss.getSheetByName('検索');

sheet2.getRange(5, 11, 100, 4).clear();

const activeSheet = SpreadsheetApp.openById("1kruk40QI9TtAtMX0e27DR38GeTpu-gqWiyj5-3_gaxI").getSheets();

const sheetLen = activeSheet.length;

for (let ws = 1; ws < sheetLen; ws++) {

let sheet = ss.getSheets()[ws]; let maxCng = sheet.getRange(54, sheet.getMaxColumns()) let lastCng = maxCng.getNextDataCell(SpreadsheetApp.Direction.PREVIOUS); for (let C = 3; C < lastCng.getColumn() + 2; C++) { let maxRng = sheet.getRange(sheet.getMaxRows(), C) let lastRng = maxRng.getNextDataCell(SpreadsheetApp.Direction.UP); let datebase = sheet.getRange(55, C * 4 - 11, lastRng.getRow(), 4) if (sheet.getRange(2, C).getValue() === sheet2.getRange(5, 10).getValue()) { sheet2.getRange(5, 11, datebase.getNumRows()-54, 4).setValues(sheet.getRange(55, C * 4 - 11, datebase.getNumRows() - 54, 4).getValues()) } }

}
sheet2.autoResizeColumns(9,6)
}

こちらの最下段のコードです。

試したこと
・セルの間をダブルクリックしてセルの幅が文字数に合わせて調整されるか確認→セル幅は文字数に合わせて調整されました。
・autoResizeColumnとFor文を組み合わせて列幅を調整できるか確認
→うまく調整されず。

初めての質問で不備があるかもしれません。申し訳ありません。もし足りない情報があれば教えていただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

自分の環境(Windows10 / Chromium Edge)でも、同じコードで実行した場合、幅を調整したい列に全角文字が含まれる場合は、文字幅よりも狭い列幅になりました。
(半角文字[1バイト文字]だけの場合はある程度正しく幅調整されます)

これは、現状、GAS側のバグである可能性が高いです。

このバグに直接該当するものは見当たりませんが、 issuetracker に autoResizeColumnsに関係するバグがいくつも上がっています。

公式が直してくれるまで待つしかないと思われます。

投稿2022/08/15 09:55

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nical

2022/08/17 01:18

解答ありがとうございます! 漢字もあるので半角に変換するのも難しそうなので、セルの幅を固定して対応したいと思います!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問