Menu

Skip to content
AppleScriptの穴
  • Home
  • Products
  • Books
  • Docs
  • Events
  • Forum
  • About This Blog
  • License
  • 仕事依頼

AppleScriptの穴

Useful & Practical AppleScript archive. Click '★Click Here to Open This Script' Link to download each AppleScript

指定名称のワークシートを新規ワークブックにコピーしてセル形式を文字形式に変更して全データを取得

Posted on 2月 6, 2019 by Takaaki Naganoya

Microsoft Excelでオープン中の書類の指定名称のワークシート内の全データを文字列リストで取り出すAppleScriptです。

Microsoft Excel v14.7.7(Office 2011)、Excel v16.22(Office 2019)で動作確認しています。

Excelは表計算ソフトであり、表形式の構造データのセル内に文字列/数値のデータを保持するようにできています。

AppleScriptからExcelのデータにアクセスすることは容易ですが、数値データの場合にはExcelが保持できる数値の桁数のほうがAppleScriptの数値型変数よりも有効桁数が多いために、データの扱いが問題になります。

そのまま取り出すと指数表示の数値データになってしまうため、何らかの対策が必要です。

そこで、指定ワークシートの書式を文字書式に設定し、データを取得することでデータが欠損することを防ぐことが可能です。事実、この手段は割と他のOSプラットフォーム(Windowsとか)でも利用されているようです。

ただ、作業対象のワークシートのセル書式を書き換えてしまうと、繰り返しテストやプログラム作成を行ううえで問題が出る(めんどくさい)ので、元データを破壊しないでセル書式を書き換える必要に迫られます。

そこで、

 (1)作業対象Excel書類の末尾に作業対象シートのコピーを作成し、セル書式を書き換えてデータ取得。終了後にコピーしたシートを削除

 (2)新規Excel書類を作成し、作業対象Excel書類の作業対象シートのコピーを新規作成書類に作成。新規Excel書類のセル書式を書き換えてデータ取得。終了後に未保存のExcel書類を破棄

の2通りを実験。元データを一切改変しない(2)の方法を採用したものが本Scriptです。

一応、

 (3)作業対象Excel書類をまるごとファイルコピーして、セル書式を改変してデータ取得して破棄してファイル削除

という方法もあり、こちらも「アリ」でしょう。

AppleScript名:指定名称のワークシートを新規ワークブックにコピーしてセル形式を文字形式に変更して全データを取得
—
–  Created by: Takaaki Naganoya
–  Created on: 2019/02/01
—
–  Copyright © 2019 Piyomaru Software, All Rights Reserved
—
use AppleScript version "2.5"
use scripting additions
use framework "Foundation"

tell application id "com.microsoft.excel"
  set wCount to count every workbook
  
if wCount = 0 then return
  
  
–コピー元のWorksheetを特定
  
tell active workbook
    set aNameList to name of every sheet
    
set origSheetName to contents of first item of (choose from list aNameList)
  end tell
end tell

set aList to getASheetDatAsStringFormat(origSheetName) of me

–現在オープン中のExcel Workbook(書類)中の指定名称のワークシートの内容を新規ワークブックにコピーし、全セルの内容をテキスト形式に変更して内容を取得
on getASheetDatAsStringFormat(origSheetName)
  tell application id "com.microsoft.excel"
    –コピー元のWorksheetを特定
    
tell active workbook –コピー元のワークブック
      set wbName to name of it
    end tell
    
    
set origSheet to sheet origSheetName of workbook wbName
    
    
–コピー先の新規ワークブックを作成してそこに指定ワークシートのデータをフルコピー
    
set distSheet to (worksheet 1 of (make new workbook))
    (
copy worksheet origSheet before distSheet) –ここでのbefore/after指定に意味はないが、指定しないと構文確認をパスしないので指定
    
    
–コピーしたWorksheetのセルのフォーマットをstring valueに変更してデータ取得
    
tell active workbook –新規作成してデータをコピーした未保存ワークブック
      tell active sheet
        set number format of used range to "@"
        
set aList to string value of used range –データ取得
      end tell
      
      
close without saving –新規作成したワークブックを保存せずに破棄
    end tell
  end tell
  
  
return aList
end getASheetDatAsStringFormat

★Click Here to Open This Script 

More from my site

  • Keynote書類のdefault title item部分に入った改行コードを除去するKeynote書類のdefault title item部分に入った改行コードを除去する
  • 指定ファイルのフルパスから拡張子を削除した文字列を取得する指定ファイルのフルパスから拡張子を削除した文字列を取得する
  • CPUのバイトオーダーを取得CPUのバイトオーダーを取得
  • バージョン番号文字列からメジャーバージョンを取り出し数値として返す v4バージョン番号文字列からメジャーバージョンを取り出し数値として返す v4
  • mpSoundEngineでランダム音発生(昔のSFでコンピュータが演算している風の音)mpSoundEngineでランダム音発生(昔のSFでコンピュータが演算している風の音)
  • macOS 10.14で新設されたエラーコード-1743を確認するmacOS 10.14で新設されたエラーコード-1743を確認する
(Visited 56 times, 1 visits today)
Posted in list | Leave a comment

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

電子書籍(PDF)をオンラインストアで販売中!

Google Search

Popular posts

  • macOS 13, Ventura(継続更新)
  • アラートダイアログ上にWebViewで3Dコンテンツを表示(WebGL+three.js)v3
  • UI Browserがgithub上でソース公開され、オープンソースに
  • Xcode 14.2でAppleScript App Templateを復活させる
  • macOS 13 TTS Voice環境に変更
  • 2022年に書いた価値あるAppleScript
  • ChatGPTで文章のベクトル化(Embedding)
  • 新発売:AppleScriptからSiriを呼び出そう!
  • iWork 12.2がリリースされた
  • 従来と異なるmacOS 13の性格?
  • 新発売:CotEditor Scripting Book with AppleScript
  • macOS 13対応アップデート:AppleScript実践的テクニック集(1)GUI Scripting
  • AS関連データの取り扱いを容易にする(はずの)privateDataTypeLib
  • macOS 12.5.1、11.6.8でFinderのselectionでスクリーンショット画像をopenできない問題
  • macOS 13でNSNotFoundバグふたたび
  • ChatGPTでchatに対する応答文を取得
  • 新発売:iWork Scripting Book with AppleScript
  • Finderの隠し命令openVirtualLocationが発見される
  • macOS 13.1アップデートでスクリプトエディタの挙動がようやくまともに
  • あのコン過去ログビューワー(暫定版)

Tags

10.11savvy (1101) 10.12savvy (1242) 10.13savvy (1390) 10.14savvy (586) 10.15savvy (434) 11.0savvy (277) 12.0savvy (185) 13.0savvy (55) CotEditor (60) Finder (47) iTunes (19) Keynote (98) NSAlert (60) NSArray (51) NSBezierPath (18) NSBitmapImageRep (20) NSBundle (20) NSButton (34) NSColor (51) NSDictionary (27) NSFileManager (23) NSFont (18) NSImage (41) NSJSONSerialization (21) NSMutableArray (62) NSMutableDictionary (21) NSPredicate (36) NSRunningApplication (56) NSScreen (30) NSScrollView (22) NSString (117) NSURL (97) NSURLRequest (23) NSUTF8StringEncoding (30) NSView (33) NSWorkspace (20) Numbers (56) Pages (37) Safari (41) Script Editor (20) WKUserContentController (21) WKUserScript (20) WKUserScriptInjectionTimeAtDocumentEnd (18) WKWebView (23) WKWebViewConfiguration (22)

カテゴリー

  • 2D Bin Packing
  • 3D
  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • beta
  • Bluetooth
  • Books
  • boolean
  • bounds
  • Bug
  • Calendar
  • call by reference
  • Clipboard
  • Code Sign
  • Color
  • Custom Class
  • dialog
  • drive
  • exif
  • file
  • File path
  • filter
  • folder
  • Font
  • Font
  • GAME
  • geolocation
  • GUI
  • GUI Scripting
  • Hex
  • History
  • How To
  • iCloud
  • Icon
  • Image
  • Input Method
  • Internet
  • iOS App
  • JavaScript
  • JSON
  • JXA
  • Keychain
  • Keychain
  • Language
  • Library
  • list
  • Locale
  • Machine Learning
  • Map
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Noification
  • Notarization
  • Number
  • Object control
  • OCR
  • OSA
  • PDF
  • Peripheral
  • PRODUCTS
  • QR Code
  • Raw AppleEvent Code
  • Record
  • rectangle
  • recursive call
  • regexp
  • Release
  • Remote Control
  • Require Control-Command-R to run
  • REST API
  • Review
  • RTF
  • Sandbox
  • Screen Saver
  • Script Libraries
  • sdef
  • search
  • Security
  • selection
  • shell script
  • Shortcuts Workflow
  • Sort
  • Sound
  • Spellchecker
  • Spotlight
  • SVG
  • System
  • Tag
  • Telephony
  • Text
  • Text to Speech
  • timezone
  • Tools
  • Update
  • URL
  • UTI
  • Web Contents Control
  • WiFi
  • XML
  • XML-RPC
  • イベント(Event)
  • 未分類

アーカイブ

  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月
  • 2023年3月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月

https://piyomarusoft.booth.pm/items/301502

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org

Forum Posts

  • 人気のトピック
  • 返信がないトピック

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org
Proudly powered by WordPress
Theme: Flint by Star Verte LLC