UWSC 掲 示 板
投稿時に「証明書が不正です」と出る場合には、JavaScriptをオンにしてください
動作不具合での質問の場合には環境(OS,IEのバージョン等)の表記もしてください
タイトルは質問内容を表したものにしてください
ネットゲーム関係の質問はご遠慮ください

エクセルに計算式を埋め込みたい(XLSETDATAとFormula) / SEN
いつもお世話になっております。
エクセルに式を転記して結果をcsvで保存しようとXLSETDATAで作成したのですが、
しろまささんのhpに下記のような掲載されていて、これなら<#DBL>とかもいれる必要もなく
シンプルで良いのですが、このような場合はXLSETDATAを敢えて使う必要はないのでしょうか?

//http://siromasa.html.xdomain.jp/uwsc/u_term/ExcelApplication.html
// .Range("A1").Formula = "=A2" // 式入力




PUBLIC Excel = XLOPEN("C:\実績.xlsx")

P計算式埋め込み("AS2","=LEFT(A2,4)")//年
P計算式埋め込み("AT2","=MID(A2,5,2)")//月
P計算式埋め込み("AU2","=IF(MID(A2,5,2)*1<=3,LEFT(A2,4)*1-1,LEFT(A2,4)*1)&<#DBL>年度<#DBL>")// & <#TAB>年度<#TAB>")//年度
P計算式埋め込み("AV2","=<#DBL>第<#DBL>&CHOOSE(MID(A2,5,2)*1,4,4,4,1,1,1,2,2,2,3,3,3)&<#DBL>四半期<#DBL>")//四半期
P計算式埋め込み("AW2","=IF(and(MID(A2,5,2)*1>=4,mid(a2,5,2)*1<=9),<#DBL>上半期<#DBL>,<#DBL>下半期<#DBL>)")//前期
P計算式埋め込み("AX2","=LEFT(AI2,2)")//統計コード2
P計算式埋め込み("AY2","=IFERROR(LEFT(AJ2,SEARCH(<#DBL>-*<#DBL>,AJ2)-1),LEFT(AJ2,SEARCH(<#DBL>SZ*<#DBL>,AJ2)-1))")//品番左
Pオートフィル("AS",2,"AY")

EXCEL.ActiveWorkbook.SaveAS("C:\実績.csv",FileFormat:= 6)

PROCEDURE P計算式埋め込み(セル位置,計算式)
XLSETDATA( Excel,計算式, セル位置 )
FEND

PROCEDURE Pオートフィル(列アルファベット前,開始行,列アルファベット後)
DIM 下終端セル行数 = Excel.Range("A1").end(-4121).ROW()
適用範囲 = EXCEL.Range(列アルファベット前+開始行+":"+ 列アルファベット後 + 下終端セル行数)
開始セル = 列アルファベット前+開始行+":"+ 列アルファベット後 + 開始行
EXCEL.Range(開始セル).AutoFill(適用範囲)
FEND

No.3441 2017/01/28(Sat) 23:10:52

Re: エクセルに計算式を埋め込みたい(XLSETDATAとFormula) / しろまさ
私は基本的にIE・XL操作はCOMで行いますので、
Pro版持ってますが、IE・XL関連関数を使うことはありません。好みです。

それと定型文ならPasteSpecialのほうが処理速いですよ。

Dim XL = CreateOleObj("Excel.Application")
XL.WorkBooks.Add
XL.Visible = TRUE
Dim WS = XL.ActiveSheet
WS.Range("A2").Value = "20161201"
SendStr(0, RePlace(AS2_AY2, "<#CR>", "<#TAB>"))
WS.Range("AS2").PasteSpecial
TextBlock AS2_AY2
=LEFT(A2,4)
=MID(A2,5,2)
=IF(MID(A2,5,2)*1<=3,LEFT(A2,4)*1-1,LEFT(A2,4)*1)&"年度"
="第"&CHOOSE(MID(A2,5,2)*1,4,4,4,1,1,1,2,2,2,3,3,3)&"四半期"
=IF(and(MID(A2,5,2)*1>=4,mid(a2,5,2)*1<=9),"上半期","下半期")
=LEFT(AI2,2)
=IFERROR(LEFT(AJ2,SEARCH("-*",AJ2)-1),LEFT(AJ2,SEARCH("SZ*",AJ2)-1))
EndTextBlock

No.3446 2017/01/30(Mon) 18:18:16

Re: エクセルに計算式を埋め込みたい(XLSETDATAとFormula) / しろまさ
でも私の場合、計算式は名前定義で行います。管理が楽なので。
当然、名前定義もCOMで作成です^^

Dim XL = CreateOleObj("Excel.Application")
Dim WB = XL.WorkBooks.Add
XL.Visible = TRUE
Dim WS = XL.ActiveSheet
WS.Range("A2").Value = "20161201"

// 名前の定義(ワークブックに)
With WB.Names
.Add(Name:="年", RefersTo:="=1*LEFT($A1,4)")
.Add(Name:="月", RefersTo:="=1*MID($A1,5,2)")
.Add(Name:="年度", RefersTo:="=IF(月<=3,年-1,年)&<#DBL>年度<#DBL>")
.Add(Name:="四半期", RefersTo:="=<#DBL>第<#DBL>&CHOOSE(月,4,4,4,1,1,1,2,2,2,3,3,3)&<#DBL>四半期<#DBL>")
.Add(Name:="前期", RefersTo:="=IF(and(月>=4,月<=9),<#DBL>上半期<#DBL>,<#DBL>下半期<#DBL>)")
EndWith

SendStr(0, RePlace(AS2_AY2, "<#CR>", "<#TAB>"))
WS.Range("AS2").PasteSpecial
TextBlock AS2_AY2
=年
=月
=年度
=四半期
=前期
EndTextBlock

No.3447 2017/01/30(Mon) 19:11:02

Re: エクセルに計算式を埋め込みたい(XLSETDATAとFormula) / SEN
なんか、凄いものを教えて頂いたような気がします。
以前からあるモヤモヤがすっきりしてきました。

修正するのがすごく大変なのです。
抽出されるデータはどうしてもcsvなので、fgetの方が良いのか、excelなんだから計算式の方が良いのか。どっちもどっちなんです。
なるほど、名前の定義ですか。
確かに.xlsのだけの時は、便利で名前の定義は良く使っています。
uwscに取り込むとは。

Names.Add+SendStr+RePlace+PasteSpecial+TextBlockの組合せですね。
このあたりから、どう質問して良いのかも分からなくなるのです。

uwscのファンとして、是非、分かり易い所に保存して欲しいと思います。

ありがとうございました。

No.3448 2017/01/30(Mon) 23:52:35

Re: エクセルに計算式を埋め込みたい(XLSETDATAとFormula) / しろまさ
取り込むというか、なんでもUWSCでやってしまおうとしてるだけというか。。

COMやDELLを使えるUWSCはとても汎用性が高いのでアプリ連携が楽に行えます。
ネックは動作スピードですので日々スピード向上のために研究してます^^
テキスト処理は正規表現を覚えると格段に処理スピードが上がりますので是非トライして下さい。

私の正規表現の習得には、しゅんさんにとてもお世話になりました。
この場を借りてお礼申し上げます。

No.3450 2017/02/01(Wed) 09:32:46

Re: エクセルに計算式を埋め込みたい(XLSETDATAとFormula) / sen
やはり、正規表現ですか?
csvなんだから、そうですよね。
次回、チャレンジしたいと思います。

ありがとうございました。

No.3452 2017/02/02(Thu) 22:26:15
URLから画像ファイルをダウンロード / Cross
現在あるサイトから、画像ファイルを一括でダウンロードするマクロを作ろうとしています。
現状画像ファイルのURLを取得することはできましたが、ローカルにダウンロードするところで詰まっています。
お知恵を拝借したいです。よろしくお願いします。

No.3435 2017/01/27(Fri) 23:16:41

Re: URLから画像ファイルをダウンロード / satocha
doscmd exec powershellなどでbitsadminをたたくのが簡単そうです。
参考
http://qiita.com/zembutsu/items/f05d7c5835017fb4c796

ほかには、
CreateOleObj( "MSXML2.XMLHTTP" )とかpowershellでInvoke-WebRequestするとかでしょうか。

No.3436 2017/01/28(Sat) 02:52:51

Re: URLから画像ファイルをダウンロード / Cross
satochaさん
ありがとうございます。
ご紹介いただいた方法で解決できました。

No.3443 2017/01/29(Sun) 22:07:18

Re: URLから画像ファイルをダウンロード / satocha
失礼しました。

紹介しておいて何ですが、bitsadminのヘルプを見たら
BITSAdmin is deprecated and is not guaranteed to be available in future versions of Windows.
Administrative tools for the BITS service are now provided by BITS PowerShell cmdlets.
超意訳:BITSAdminは将来なくなっちゃうかもだから、PowerShellを使ってね
ということでした。
お手数ですが
powershell( "import-Module bitstransfer;start-bitsTransfer -source http://www.uwsc.info/logo.jpg folder\to\save\" )
みたいな感じでpowershellのstart-bitsTransferコマンドレットを使ってください。

No.3444 2017/01/30(Mon) 12:11:21

Re: URLから画像ファイルをダウンロード / stuncloud
せっかくなのでMSXML2.XMLHTTP版も

Download("http://www.uwsc.info/logo.jpg", "logo.jpg")

procedure Download(url, path)
 // ダウンロード
 with createoleobj("Msxml2.XMLHTTP")
  .open("GET", url, FALSE)
  .send()
  if .status = 200 then
   bin = .responseBody
  else
   msgbox("ダウンロード失敗")
   exit
  endif
 endwith
 // ファイルの保存
 with createoleobj("ADODB.Stream")
  .Open()
  .Type = 1 // adTypeBinary
  .Write(bin)
  .SaveToFile(path)
  .Close()
 endwith
fend

No.3445 2017/01/30(Mon) 13:58:36

Re: URLから画像ファイルをダウンロード / しろまさ
APIもありますよ。

DEF_DLL URLDownloadToFileA(Long, String, String, Long, Long) :Long :Urlmon
URLDownloadToFileA(0, "http://www.uwsc.info/logo.jpg", "c:\test\logo.jpg", 0, 0)

No.3449 2017/01/31(Tue) 09:06:01
Excel2002のオプションの変更 / みつ
おはようございます。
Excel2002のオプションを以下のようにCOMを使用して変更したいのですが可能でしょうか?

ツール - オプション - 計算方法 - 自動 - OK

GETIDとSCKEYを使用するしかないのでしょうか?
調べてみたのですが分からなかったのでご教授をよろしくお願いします。

No.3437 2017/01/28(Sat) 08:56:53

Re: Excel2002のオプションの変更 / yanyan
Excel2010ですが、マクロ記録すると、下記のようです。

CONST xlAutomatic = -4105
Application.Calculation = xlAutomatic

No.3440 2017/01/28(Sat) 20:23:16
特定のページでcomでテキスト取得する方法 / あゆみ
自分が運営しているサイトのテキストを取得する為、テキスト解析を使用して下記まで調べる事ができました。このテキスト1、テキスト2を取得する方法ないでしょうか?
検索で調べていまいち分かりません。

IE=GetActiveOLEObj("InternetExplorer.Application")
doc=IE.document
上のコード使うとは思いますが、どうしたらできるでしょうか?


doc.forms(1).elements(14).value :"テキスト1"


doc.forms(1).elements(14).defaultValue :"テキスト1"


doc.all.tags("input").post_title.value :"テキスト1"


doc.forms(1).elements(38).value :"テキスト2


doc.forms(1).elements(38).defaultValue :"テキスト2

No.3438 2017/01/28(Sat) 13:13:26
フォルダーの中のAファイルを除いて処理する方法 / NER
質問ばかりですみません。
フォルダーには、Aファイル、Bファイル、Cファイルが入っています。
下記のコードでフォルダー内のAファイルを除いてBファイル、Cファイルに処理する方法はないでしょうか?

PATH1 = "C:\Users\tesuto\xlsm"
NUM = GETDIR(PATH1) //ファイルの数だけならNUM
nozoku="Aファイル"
//配列を展開
FOR A = 0 TO LENGTH(GETDIR_FILES) - 1
sent=CHGMOJ( GETDIR_FILES[A], ".xlsm","")
sent1=PATH1+"\"+sent

o_XL = CREATEOLEOBJ("Excel.Application")
o_XL.visible = True
o_XL.WorkBooks.Open(FileName :=sent1)
o_ws=o_XL.ActiveSheet.Name

o_XL.RANGE("c1").value = "テキスト文字"
xlclose(o_XL)
next

No.3431 2017/01/27(Fri) 14:03:06

Re: フォルダーの中のAファイルを除いて処理する方法 / stuncloud
> 質問ばかりですみません。
はい

処理の分岐はifやselectを使います
以下はselectの例です

nozoku="Aファイル"
FOR A = 0 TO LENGTH(GETDIR_FILES) - 1
 sent=CHGMOJ( GETDIR_FILES[A], ".xlsm","")
 select sent
  case nozoku
   continue
  default
   // ファイルに対する処理
 selend
next

sentがnozoku(Aファイル)であったらスキップします
それ以外は処理が行われます
continueはループの次の周回へ行けという命令ですが、今回の書き方ですとなくても結果は同じになりますね

条件分岐はとても基本的なことですがとても重要です
先の質問もそうですが、条件分岐なしには書けないということがわかったと思います
まずはifの使い方を覚えてみましょう
上記のコードはifで書き直すこともできるので、挑戦してみてはいかがでしょうか

No.3433 2017/01/27(Fri) 14:49:20

Re: フォルダーの中のAファイルを除いて処理する方法 / NER
回答ありがとうございます。無事希望通りの処理ができました。
UWSCの奥深さ、極めたらどうなるか楽しみです。
もっと学んでいきたいと思います。
stuncloud様のスクリプトを参考にIF文に直してみました。
下記がコードです。
nozoku="Aファイル"
PATH1 = "C:\Users\tesuto"
NUM = GETDIR(PATH1) //ファイルの数だけならNUM

FOR A = 0 TO LENGTH(GETDIR_FILES) - 1
sent=CHGMOJ( GETDIR_FILES[A], ".xlsm","")

if nozoku=sent then
continue
else
   // ファイルに対する処理

endif

next

No.3434 2017/01/27(Fri) 22:28:26
対象文字列をテキストファイルの中の文字列から検索して一番先頭にもっていく方法 / NER
テキストファイルの中の文字列から、特定の単語を消して、その特定の単語を先頭に持っていく方法を探しています。

下記までは作成したのですが、ここからどうしたらいいか分かりません。
ご教授願えませんか?

mozi="検索して先頭行に表示させたい文字列"

hensu2=fopen("C:\Users\修正ファイル分.txt", F_WRITE8 or f_read)
naiyo=fget(hensu2,F_ALLTEXT)
fput(hensu2, mozi,"1")

fclose(hensu2)

テキストファイルに下記のテキストが入力されているとします。

大阪
東京
名古屋
沖縄

これを下記のようにしたい。検索文字を名古屋として。

名古屋
大阪
東京
沖縄

No.3428 2017/01/27(Fri) 10:54:20

Re: 対象文字列をテキストファイルの中の文字列から検索して一番先頭にもっていく方法 / stuncloud
検索文字が確実にテキスト内に存在し、かつ行に書かれた文字列と完全一致する場合のサンプルです

file = "C:\Users\修正ファイル分.txt"
target = "名古屋"

fid = fopen(file, F_READ or F_WRITE8)
for i = fget(fid, F_LINECOUNT) to 1 step -1
 if fget(fid, i) = target then
  fdelline(fid, i)
 endif
next
fput(fid, target, 1, F_INSERT)
fclose(fid)

検索文字がテキスト内に存在しない場合を考慮したり部分一致でやりたいという場合はもう少し工夫が必要です

No.3430 2017/01/27(Fri) 11:46:11

Re: 対象文字列をテキストファイルの中の文字列から検索して一番先頭にもっていく方法 / NER
stuncloud様、回答ありがとうございます。希望通りの処理ができました。
このスクリプトを自分の今の実力では全然思いつきませんでした。
もっと、勉強していきたいと思います、ありがとうございました。

No.3432 2017/01/27(Fri) 14:05:31
Excelのc列を挿入する方法 / NER
エクセルでc列に列を挿入する方法を探しています。以下のコードを試してもうまくいきません。
何か良い方法ないでしょうか?

//エクセル既存ファイル起動

//.xlsm拡張子必要なし
hensu="C:\Users\Desktop\tesuto.xls"

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
Excel.WorkBooks.Open(FileName :=hensu)
XLACTIVATE( Excel, "Sheet1")

EXCEL.Columns("c:c").Select
Selection.Insert Shift:=xlToRight

No.3426 2017/01/27(Fri) 07:27:16

Re: Excelのc列を挿入する方法 / しろまさ
最後の一行を変更。

CONST xlToRight = -4161
EXCEL.Selection.Insert(Shift:=xlToRight)

No.3427 2017/01/27(Fri) 09:51:05

Re: Excelのc列を挿入する方法 / NER
しろまさ様、回答ありがとうございます、無事できました。
No.3429 2017/01/27(Fri) 10:58:05
(No Subject) / カルロス
なるほど、分数で表記するわけですか。ぶっちゃけこのようなuwsファイルを速く動かしたいときには
どこにsleepを入れればいいのでしょうか

While True
MMV(1184,49,515)
MMV(1399,22,16)
ACW(GETID("(無題)(更新) - 秀丸","Hidemaru32Class"),1252,12,640,759,0)
BTN(LEFT,CLICK,1400,21,312)
KBD(VK_SHIFT,DOWN,999)
KBD(VK_DOWN,CLICK,468)
KBD(VK_SHIFT,UP,109)
KBD(VK_CTRL,DOWN,671)
KBD(VK_X,CLICK,406)
KBD(VK_CTRL,UP,78)
MMV(1401,15,624)
MMV(873,10,15)
ACW(GETID("temp - Windows ムービー メーカー","MovieMakerWndClass"),4,1,1004,1029,0)
BTN(LEFT,CLICK,873,10,172)
KBD(VK_ALT,DOWN,1622)
KBD(VK_ALT,DOWN,499)
KBD(VK_ALT,DOWN,32)
KBD(VK_E,DOWN,15)
KBD(VK_ALT,UP,156)
KBD(VK_E,UP,0)
KBD(VK_E,CLICK,718)
KBD(VK_TAB,CLICK,2028)
KBD(VK_CTRL,DOWN,780)
KBD(VK_V,CLICK,327)
KBD(VK_CTRL,UP,78)
KBD(VK_BACK,CLICK,1045)
KBD(VK_SHIFT,DOWN,1326)
KBD(VK_TAB,DOWN,218)
KBD(VK_SHIFT,UP,203)
KBD(VK_TAB,UP,0)
KBD(VK_DELETE,CLICK,655)
MMV(877,5,1201)
MMV(1410,26,15)
BTN(LEFT,CLICK,1410,26,359)
ACW(GETID("(無題)(更新) - 秀丸","Hidemaru32Class"),1252,12,640,759,0)
KBD(VK_SHIFT,DOWN,1170)
KBD(VK_DOWN,CLICK,297)
KBD(VK_SHIFT,UP,218)
KBD(VK_CTRL,DOWN,702)
KBD(VK_X,CLICK,375)
KBD(VK_CTRL,UP,63)
KBD(VK_SHIFT,DOWN,468)
KBD(VK_DOWN,CLICK,187)
KBD(VK_SHIFT,UP,94)
KBD(VK_DELETE,CLICK,562)
MMV(1408,16,982)
MMV(165,173,16)
BTN(LEFT,CLICK,165,173,249)
ACW(GETID("temp - Windows ムービー メーカー","MovieMakerWndClass"),4,1,1004,1029,0)
KBD(VK_CTRL,DOWN,764)
KBD(VK_V,CLICK,499)
KBD(VK_CTRL,UP,172)
KBD(VK_RETURN,CLICK,655)
KBD(VK_TAB,CLICK,1560)
KBD(VK_TAB,CLICK,203)
KBD(VK_RETURN,CLICK,920)
KBD(VK_RIGHT,CLICK,1623)
MMV(169,173,1030)
MMV(1074,46,15)
Wend

No.3402 2017/01/22(Sun) 22:35:38

Re: / MM
工夫すれば出来るの真意は、その機能を自力で実装する、です。
貴方の望むような形での機能はありませんので他のソフトを当たるか、
誰かに発注して有償で作ってもらうかしてください。

No.3403 2017/01/22(Sun) 22:39:48

Re: / カルロス
なるほど。基本的なユーザインターフェイスや動き方は気に入っていたので残念です。どなたか、だいたい同じような感じのフリーウェアのマクロソフトで、倍速機能が付いているおすすめソフトがありましたら、ご紹介いただけるとありがたいです。
No.3405 2017/01/22(Sun) 23:22:48

Re: / tmp
調べる事も苦労もしない人に教える人はいるのでしょうか?
他のソフトですか?そんな事ここで聞くものではないかと思います。

No.3406 2017/01/23(Mon) 10:09:58

Re: / stuncloud
荒れてますね
以下は一応出来なくはないよ、という話です

前のスレッドで俄プログラマーがおっしゃっていたことを提示されたスクリプトでやる場合はsleepを使うわけではありません

> MMV(1184,49,515)
> BTN(LEFT,CLICK,1400,21,312)
> KBD(VK_SHIFT,DOWN,999)


主にこのMMV、BTN、KBDという関数で構成されていますが、これらの最後の引数は
> 実行までの待ち時間 (ミリセカンド)
です
つまりこれをいじれば早くなるんですね

----------------------------
速度 = 1 //2倍速の時は2
MMV(1184,49,515/速度)
BTN(LEFT,CLICK,1400,21,312/速度)
KBD(VK_SHIFT,DOWN,999/速度)
----------------------------

といった感じにすべてのMMV、BTN、KBDの最後の引数に「/速度」を付ければ変数「速度」に入れた値によって速度調整できるようになるというわけです
MMV(1184,49,0)
MMV(1184,49)
のように実行までの待ち時間を0にするか省略すれば最速で動作します

No.3407 2017/01/23(Mon) 10:58:54

Re: / カルロス
No.3407さま
ありがとうございます。まさに私が聞きたかった解決法です。これなら手間を掛けずに倍速動作が可能ですね。重ね重ねありがとうございました。

No.3406
>調べる事も苦労もしない人に教える人はいるのでしょうか?
いましたね。
上から目線でモノを言いたいだけの役立たずはすっこんでてください。

No.3409 2017/01/23(Mon) 14:47:15

Re: / stuncloud
カルロスさん
> 上から目線でモノを言いたいだけの役立たずはすっこんでてください。
ええと、あなたもそういうこと言わんでくださいますかね…
思うのはぜんぜん構わんので、でも腹に抱えといとくだけにしてください…

プログラムを書くということの性質上なのか、このような場では「人に聞くばかりで自分の手をあまり動かそうとしない人」というのは嫌われる傾向にあります
いわるゆ「教えて君」のような呼ばれ方をする人ですね
あなたの質問や受け答えからそのような人だと思われたという可能性があり、ついきつい言い方になってしまう人が出てくるのは理解できます
実際僕のあなたに対する印象もそのようなものでありました

ただ、文面から受ける印象とその人の実際が合致するとも限りませんし、あまりそんなことでいざこざが起こるのも好みません
ですのでひとまず(おそらくあなたが求めているであろう)回答を提示しました

ちなみに僕の最近の回答スタンスは「とりあえず答えを提示する」です
これが一番スムーズです
かつては安易に答えだけ教えるのは良くないのではないかと思っていました
いわゆる教えて君な感じの人には特に、自分で考えようとしない姿勢が気に入らないという気持ちがあったんですよね
ただそれは全部こちらの思い込みですし、それで意地悪したところでなんもいいことないです

ことプログラミングに関しては人に聞く、ということは絶大な効果があったりします
みなさんも経験があるんじゃないかと思うんですが、独学では理解できなかったことが誰かの一言で途端に理解できた、といったことがありますよね
たったそれだけのことで一気に習熟が進むことを身を以て知っているので、僕はそのものズバリの答えを教えることに躊躇しなくなりました
プログラムで何につまづいて、またどのようにつまづいているかって人によるのでそのあたりの事情って質問からでは読み取れない事が多いです
でも、解答となるコードは手段からなにから全部詰まってるわけですよ
そのコードを見た質問者がその場しのぎにコピペするかとかそこから成長するかとかはまぁ、どうでもいいことなんですよ
どうせわかんないし
だったらまぁ後者だといいなぁと思いながら回答したほうがこっちにとってもいいし、答えを求めている相手にとっても良いですよね

あ、もちろん何度も何度も質問を繰り返すひとにはふんわりいい加減にしろって伝えます
あと、具体的にな答えではなくヒントだけでも良さそうな人にはヒントだけ伝えたりもします

とまぁ色々書きましたが、あくまで僕がこうだよって話でみなさんもそうであれってことではないです
ただあまりつっけんどんにしないほうがみんな気持ちよく利用できるよね、ということだけは意識してもらいたいかな…

No.3412 2017/01/23(Mon) 17:00:09

Re: / しろまさ
(o^-^)b いいね!
No.3418 2017/01/23(Mon) 19:41:54

Re: / カルロス
stuncloudさん

ネガティブな反応が返ってくることはわかりきっていたんで、もう書き込まないつもりだったのですが、せっかく長文のレスをいただいたということもありますんで、ちょっとだけ。

おっしゃるとおり私は「教えて君」です。プログラムに限らずいろんな分野で「教えて君」です。で、ほうぼうでこの手のドシロートな質問をするのですが、どの分野の掲示板に行っても必ず居るんですよね。たいした知識もないくせにエラぶりたいだけの人が。教えてgooとかほんとヒドいです。

私はプログラム全くわかりませんが「最後の項目がミリセカンドの待ち時間です」、このたった1行のレスすら返せない人が上級者のわけがない。ほんと笑っちゃいます。

確かに私のレスは常識を欠いたものであることに弁解の余地はありませんが、「自称上級者」が特権的に行使する嘲笑が、私がやったと同じように不愉快の種を撒いていて、時には初心者を萎縮させたり、必要以上にへりくだった態度を取らせていることも、知っていただきたいと思うのです。

No.3419 2017/01/23(Mon) 20:04:07

Re: / MM
皆さん返せないではなく返さなかっただけです。
逆効果な挑発はお勧めしません。
HELPに判りやすく書いてあることなので初心者ですらすぐ判ることです。
判らなくて良い人がいたとしたら、それは、誰かにやらせる人、だけです。
慈悲に満ちた富者からの恵みを頂くのは幸運ではありますが権利ではありません。
教えて君とは、誰かに仕事をやらせる対価を払わないで済まそうとするフリーライダー。
フリーライダーは通常、社会の敵なので、反発心を集めます。

No.3425 2017/01/25(Wed) 21:33:43
1つのスクリプト内で2度目のエクセル起動がエラーになる / jasmine
弥生ソフトからデータを取り出してエクセルに自動で保存する作業をUWSCでやっています。
2種類のデータを保存するので2つのスクリプトを作成しました。
各々のスクリプトは意図通りに動いてデータ保存できるのですが、
この2つを合わせて1つのスクリプトにしたら2つめのエクセルの保存がCOM_errorでできなくなってしまいます。
こちらの解決法がわかる方、教えていただけたら幸いです。



CLKITEM(id, "新規のExcelファイルに書き出す", CLK_ACC)
CLKITEM(id, "OK", CLK_BTN)
ExlApp = GETACTIVEOLEOBJ("Excel.Application")
ExlApp.visible = True
ExlApp.DisplayAlerts = False
ExlApp.Activeworkbook.saveAs("C:\Users\USER\Desktop\Test1.xlsx")
ExlApp.Activeworkbook.close
EXCEL = XLOPEN("c:\Users\USER\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.xlsb")
EXCEL = XLOPEN("C:\Users\USER\Desktop\Test1.xlsx")
EXCEL.Run("PERSONAL.XLSB!xxx")
ExlApp.Activeworkbook.saveAs("c:\Users\USER\Desktop\Test1.xlsx")
ExlApp.Quit
//XLCLOSE(Excel) //エクセルを閉じる 
id = GETID("弥生販売 ….")
////略///
CLKITEM(id, "新規のExcelファイルに書き出す", CLK_ACC)
CLKITEM(id, "OK", CLK_BTN)
ExlApp = GETACTIVEOLEOBJ("Excel.Application")
ExlApp.visible = True
ExlApp.DisplayAlerts = False
ExlApp.Activeworkbook.saveAs("C:\Users\USER\Desktop\Test2.xlsx")
ExlApp.Activeworkbook.close
ExlApp.Quit
EXCEL = XLOPEN("c:\Users\USER\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.xlsb")
EXCEL = XLOPEN("C:\Users\USER\Desktop\Tes2.xlsx")
EXCEL.Run("PERSONAL.XLSB!YYYの作成")
ExlApp.Activeworkbook.saveAs("c:\Users\USER\Desktop\Tes2.xlsx")
ExlApp.Quit

No.3423 2017/01/25(Wed) 15:35:44
EXCELオートフィルター / ROM
お世話になります。
見よう見まねでEXCELのオートフィルタープログラムを作成しています。
何とかオートフィルターまでは出来たつもりですが、”選択行の数”と”選択行”を取得する方法が解りません。
ググったところ、以下の記述を見つけました。


 選択されているセルのすべての行番号を取得する
  Dim rng As Range

  For Each rng In Selection.Columns
   MsgBox rng.Column
  Next rng

知識不足でUWSCへの適用方法が解りません。
何方かご教示いただければ幸いです。
よろしくお願いします。

参考:オートフィルター
oXL=GetActiveOleObj("Excel.Application")
_Filter="XXX"
_CellNumber="C2"
ColumnNumber = oXL.ActiveSheet.Range(_CellNumber).Column
oXL.ActiveSheet.Range(_CellNumber).AutoFilter(Field:=ColumnNumber, Criteria1:=_Filter)
PRINT oXL.Selection.ROWS.count // 「1」と表示される。

No.3408 2017/01/23(Mon) 12:55:00

Re: EXCELオートフィルター / しき
//フィルタリングの結果を取得する場合は、AutoFilterオブジェクトを使います
oXL=GetActiveOleObj("Excel.Application")
o_filter = oXL.ActiveSheet.AutoFilter //AutoFilterオブジェクト
xlCellTypeVisible = 12

//第一列の Ranges
o_ranges = o_filter.Range.Columns(1).SpecialCells(xlCellTypeVisible)
print o_ranges.Count
print o_ranges.Address

n = GetOleItem(o_ranges)
for i=0 to n -1
  o_range = all_ole_item[i]
  print o_range.Row +" "+ o_range.Address(false, false)
next

msgbox(o_ranges.Count +" 行")

No.3411 2017/01/23(Mon) 16:07:44

Re: EXCELオートフィルター / しき
>フィルタリングの結果を取得する場合は、AutoFilterオブジェクトを使います
少し違いました。
AutoFilterオブジェクト は表の範囲を特定するためだけに使っています

o_ranges = o_filter.Range.
の部分は、例えば以下のようにも書けます
o_ranges = oXL.ActiveSheet.Range("C2").CurrentRegion.
o_ranges = oXL.ActiveSheet.Range("A1:C15").

肝は表示行だけを得るための、.SpecialCells(xlCellTypeVisible) です

参考URL
Office TANAKA - Excel VBA Tips[オートフィルタを使い倒す]
http://officetanaka.net/excel/vba/tips/tips155d.htm

No.3415 2017/01/23(Mon) 17:54:05

Re: EXCELオートフィルター / ROM
しき様

ありがとうございます。
お陰様で出来ました!!

No.3422 2017/01/24(Tue) 21:10:56


 過去ログ(〜2016/10/02)・検索ツール


以下のフォームに記事No.と投稿時のパスワードを入力すれば
投稿後に記事の編集や削除が行えます。
200/200件 [ ページ : << 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... 20 >> | 過去ログ ]