日本語プログラミング言語なでしこの公式掲示板

なでしこ の 掲示板

トップ 新規 検索

2022-06-22 16:36:10

Re⑥:「ファイルを取り込む」のプログラムについて教えていただけませんでしょうか?

tiara★ さん

雪乃☆雫 さん

ご連絡が遅くなりまして、申し訳ございませんでした。
教えていただいた内容で、プログラムを動かす事ができました。
ありがとうございました。

本来使用したいプログラムにて、上記の動作をさせようとしましたが、.nako/.txtともに、
【[エラー] お試し.nako.bak(34): 記述ミスがあります。プログラムを見直してください。2個の語句が無意味です。命令の未定義、プラグイン不足の可能性もあります。(「(変数)ボタン1」助詞「の」)】
エラーが出て動かず.....「ファイルを取り込む」のプログラムを入れる前は、プログラム中にパスを記載し動かしていました。
「ファイルを取り込む」、変数を追記しただけでは、いけなかったのでしょうか?

本来動かしたいプログラムは、下記の内容です。
1つエクセルファイルを作成し、2つのエクセルファイルをシート別に必要なデータのみコピーし、シート名を変える。
3つ目のシートを作成し、1、2のシートをデータをコピー&貼り付けし、ファイル名を付けて保存する。



 😀※母艦とはフォーム##生成  🎈※母艦とはフォーム##生成
母艦は「メインフォーム」
その可視はオン    #非表示にする
そのX=45
そのY=100
そのW=400#数値
そのH=400#数値
そのタイトル=「商品一覧」#文字列
そのスクロールバーは「縦」

#設定ファイルの読み込む
!「C:\Users\(ユーザー名)\Desktop\設定ファイル.txt」を取り込む。

※ ---
 😀ラベル1とはラベル##生成  🎈ラベル1とはラベル##生成
そのX=60#数値
そのY=20#数値
そのW=8#数値
そのH=8#数値
そのテキスト=「★Dシリーズ」#文字列
その文字色=RGB(189,103,72)


※ ---
ボタン1を画像ボタンとして作成
ボタン1→X=60#数値
ボタン1→Y=60#数値
ボタン1→W=200#数値
ボタン1→H=30#数値
ボタン1→テキストは空。
ボタン1→フラットはオン
  
塗り色はRGB(251,218,200)。線色は黒色。線太さは2。#薄いオレンジ
ボタン1の画像ボタン色指定。
ボタン1に「D-A(11111)」を画像ボタンテキスト指定。

ボタン1→クリックした時は~ 
  母艦は最小化
  エクセル起動
  
  ファイル1をエクセル開く#設定.txtに記載された宣言
  
  「A:O」をエクセル選択#必要な部分のみ選択
  エクセルコピー
  エクセル新規ブック
  エクセル新規シート
  エクセル貼り付け
  「A9:I100」のエクセル列削除#必要のない箇所の削除
  「G:I」のエクセル列削除
  「1:3」のエクセル行削除
  「5」のエクセル行削除
  
  0.5秒待つ
  「B2」をエクセル選択#シート名
  1秒待つ
  「/」から「」へエクセル選択範囲置換 
  旧シート名=エクセルシート名取得。
  新シート名=「B2」のエクセルセル取得。
  旧シート名を新シート名にエクセルシート名前変更。
  1のエクセルブック注目
  1のエクセルブック非保存閉じる
  
    
  ファイルAをエクセル開く#設定.txtに記載された宣言
  
  「A:O」をエクセル選択
  エクセルコピー
  2のエクセルブック注目
  エクセル新規シート
  エクセル貼り付け
  
  「A9:I100」のエクセル列削除
  「G:I」のエクセル列削除
  「1:3」のエクセル行削除
  「5」のエクセル行削除
  
  0.5秒待つ
  「B2」をエクセル選択#シート名
 
  1秒待つ
  「/」から「」へエクセル選択範囲置換 
  旧シート名=エクセルシート名取得。
  新シート名=「B2」のエクセルセル取得。
  旧シート名を新シート名にエクセルシート名前変更。
  
  新シート名をエクセルシート末尾移動

  1のエクセルブック非保存閉じる
  SHEET1をエクセルシート先頭移動
  SHEET1のエクセルシート注目
  
  旧シート名=エクセルシート名取得。
  新シート名=「D-A」#商品名の入力
  旧シート名を新シート名にエクセルシート名前変更。
  
  「D」のエクセルシート注目#セット品名の入力
  行=Aでエクセル最下行取得。
  列=行でエクセル最右列取得。
  セル=行,列のエクセルセル名取得。
  「A1:{セル}」をエクセル選択。
  エクセルコピー。 
  
  「D-A」のエクセルシート注目#商品名の入力
  貼付行=1。
  「A{貼付行}」をエクセル選択。
  エクセル貼付け。
  貼付行=貼付行+行+1。
  
  
  「Y&B」のエクセルシート注目#セット品名の入力
  行=Aでエクセル最下行取得。
  列=行でエクセル最右列取得。
  セル=行,列のエクセルセル名取得。
  「A1:{セル}」をエクセル選択。
  エクセルコピー。 
  
  「D-A」のエクセルシート注目#商品名の入力
  「A{貼付行}」をエクセル選択。
  エクセル貼付け。
  貼付行=貼付行+行+1。
  
  「1:6」にエクセル行挿入#セット品リスト作成の為の行追加
  
  「A1」へ「商品名」をエクセルセル設定
  「B1」へ「D-A」をエクセルセル設定#商品名の入力
  「A1:C1」をエクセル選択。黄色でエクセル着色
  「A2」へ「セット品①」をエクセルセル設定    
  「A3」へ「セット品②」をエクセルセル設定
  「A4」へ「セット品③」をエクセルセル設定
  「A5」へ「セット品④」をエクセルセル設定
  
  #セット品①
  「D」のエクセルシート注目
  「B2」をエクセル選択
  エクセルコピー

  「D-A」のエクセルシート注目
  「B2」をエクセル選択
  エクセル貼り付け

  「D」のエクセルシート注目
  「B4」をエクセル選択
  エクセルコピー

  「D-A」のエクセルシート注目
  「C2」をエクセル選択
  エクセル貼り付け
  
  
  #セット品②
  「Y&B」のエクセルシート注目
  「B2」をエクセル選択
  エクセルコピー

  「D-A」のエクセルシート注目
  「B3」をエクセル選択
  エクセル貼り付け

  「Y&B」のエクセルシート注目
  「B4」をエクセル選択
  エクセルコピー

  「D-A」のエクセルシート注目
  「C3」をエクセル選択
  エクセル貼り付け
  
 
  
  「B1:B150」をエクセル選択#商品名セルの列幅変更
  8にエクセル選択列幅設定
  「C1:C150」をエクセル選択#品名セルの列幅変更
  13にエクセル選択列幅設定
  「D1:D150」をエクセル選択#規格名セルの列幅変更
  25.7にエクセル選択列幅設定
  「E1:F150」をエクセル選択#分子分母セルの列幅変更
  5にエクセル選択列幅設定
  
  「A1」をエクセル選択。
 
  
  DA保存へエクセル保存#設定.txtに記載された宣言
  
  エクセル終了。

★設定ファイルの中身

#設定

#-----セット品の本体側-----

!ファイル1=「{デスクトップ}\_11111_D.xlsx」

#-----セット品のバンドル側-----
!ファイルA=「{デスクトップ}\_22222_Y&B.xlsx」

#-----保存先-----
!DA保存=「{デスクトップ}\D-A(11111).xlsx」


 おっと、でたでた。同じエラー再現した~☆
 設定ファイルの文字コードをUTF-8にしてみたら、なりました!
 とゆうわけで、原因はまさしくご推察どうり、文字コードなんじゃないでしょうか。
 なでしこの文字コードはSJISなので、ファイルの文字コードはSJISにしておく必要があります。
 わたしのとこでは、拡張子がtxtでもnakoでも、文字コードがSJISなら大丈夫でしたし、文字コードがUTF-8だったばあいは、txtでもnakoでも同じエラーになりましたよ。
 拡張子のみを変えたと言っても、うまくいった「設定お試し.nako」をtxtにリネームしたんじゃなくて、エディタかなんかで新規作成したのにコピペして保存されたんじゃないでしょうか?
 もし・・・そちらの環境ではSJISで保存しててもnakoならうまく行ってtxtだとエラーになっちゃうとゆうことであれば・・・あきらめてnakoにしておきましょう(え;)
 拡張子がtxtでも取り込めますっていうのは別に公式のアレでは無く、ワタシがどうなのかしらとお試ししてみたところ、うちではマッタク問題なく取り込めたので、できるよ~☆ といっただけなので・・・

補足
 取り込んだ設定ファイルの中では{デスクトップ}使えます。
#-----------------------------------------------
!ファイルA=「{デスクトップ}\なでしこ色見本.xlsx」 
!ファイルA保存=「{デスクトップ}\scan\なでしこ色見本2.xlsx」 
#-----------------------------------------------
 って書けますよ☆ 
 


(編集パスワード送信)

子記事

親記事 (No.1349)
返信した記事(元) (No.1354)

この内容(No.1361)に返信

この内容(No.1361)をダウンロード

この内容(No.1361)のテキスト表示





www.eznavi.net