その他(プログラミング・開発)
- GASで編集時に通知を行いたい
報酬付き
function notify_when_edit(e) { if (!e) { // eに値がない場合(IDEで関数を実行したとき等)は何もせず終了する return; } //if (recipientEmail === editorEmail) return; //シート名で取得 var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("進捗表"); //アクティブセルを取得 var myCell = sheet.getActiveCell(); // 送信先メールアドレスを定義する const mail_to = 'aaa@aaa.co.jp'; // データの取得 const ss_name = e.source.getName(); const sheet_name = e.source.getSheetName(); const edited_cell = e.range.getA1Notation(); const value_before = e.oldValue; const value_after = e.range.getValue(); const url = e.source.getUrl(); const telln = e.range.offset(0, 13).getvalue(); // メール本文を組み立てる const mail_body = []; mail_body.push(' 返信があったセル: ' + edited_cell + "\n" + "\n"); mail_body.push(' 該当セルの電話番号: ' + telln + "\n" + "\n" ); mail_body.push(' 返信内容: ' + value_after); // メールを送信する if(myCell.getColumn()==16){ GmailApp.sendEmail(mail_to, 'スプレッドシートが変更されました', mail_body.join('\n')); } } 上記内容でGASを作ったのですが、 TypeError: e.range.offset(...).getvalue is not a function とエラーが出てしまいます。 編集したセルから右に13個いったところのセルを取得したいのですが、うまくいかないのでお力お貸しくださいませ。 当方、VBAしかわからず初心者です。
- 受付中
- shobukintai
- その他(プログラミング・開発)
- 回答数2
- AIとしりとり。
無料の生成AI(質問に答えるやつ)と10回以上、しりとりを継続することは可能ですか。 ちなみに私は5回が限度でした。
- 締切済み
- 715714797
- その他(プログラミング・開発)
- 回答数2
- GitHub Copilotに規約を理解させる
GitHub Copilot、GitHub Copilot Chatを使ってコーディングする時に、自ら作成したコーディング規約に則って提案して貰いたい場合、どのようにすれば理解させることができるでしょうか? copilotはbusinessエディションです。
- 締切済み
- gfdguyh137
- その他(プログラミング・開発)
- 回答数1
- UnityでSpriteのSlice結果の保存方法
UnityのSpriteEditorでSliceして画像を分割した後、その結果をpng形式などで個々のファイルとして保存する方法はありますでしょうか? ある場合、手順についてご教示頂けないでしょうか。
- ベストアンサー
- mayoke
- その他(プログラミング・開発)
- 回答数1
- バッチファイルでmd あ 文字化けしてしまう
バッチファイルでmd あ として、フォルダ名が”あ”のフォルダをつくりたい。 実行すると”あ”にならず、文字化けします。 正しくはどう表記すればよいのでしょうか?
- ベストアンサー
- gennya
- その他(プログラミング・開発)
- 回答数2
- 企業プログラマーはバックアップを取らないのか?
企業が行う改悪、これによってユーザーが離れるということがありますが、どんだけ改悪にバッド評価がついても頑なに戻さないんですよね。お金関係は儲けのためだから仕方ないとして、UIとかを戻さないことが割とイラっときます そこで僕はこう思ったんです 企業プログラマーはバックアップを一切取らないのでは?と もしバックアップがあれば 「バックアップ発動!UI復元」が一瞬でできます 改悪でユーザーが離れたら損害はでかい…でもUIを戻さない これはバックアップがないからなんじゃないかと思いました これについてプログラマーさん、回答お願いします
- ベストアンサー
- jihadX
- その他(プログラミング・開発)
- 回答数3
- vs codeのキーボード言語設定はどこにある?
Windows上でvisual studio codeを使っていると、突然キーボートが英語配列入力になってしまうことがあります。このとき、他のアプリは日本語入力のままなので、Windowsの設定自体が変わってしまったのではなく、vscodeのみがおかしくなった感じです。 vscodeでキーボード設定を探してみたのですが、見当たらなかったです。どこかに日本語<-->英語切り替えがあるならば、教えてもらいたいです。 入力中に何かのショートカットキーを押してしまったのでしょうか? もしこうなったときは、vscodeを再起動する方法で対応するしかなくそうやっていましたが、vscodeは複数立ち上げていることが多く、それらすべてを閉じなければならないので、ちょっと面倒です。 ショートカット操作でサッと直せればよいのですが・・・。 よろしくお願いいたします。
- 締切済み
- haniriito2019
- その他(プログラミング・開発)
- 回答数2
- 多数のプログラムの色の謎
ちょっと気になったんですけど、なんで大手のサービス程、 色の自由度がないんでしょう? どういうことかというと、 文字の色、吹き出しが指定できないってことです youtubeのコメントは白or黒 Xのポストも白or黒 LINEの文字は黒 吹き出しは白か緑 のように色が固定化されているのが不思議です 別に機能的な不便はないものの、色がたくさん使えたらいいなって思いました 文字の色を青にしたり、2色使ったり、 なんなら虹の色でも使えば表現の幅が広がるはずです 決して需要がないわけではないと思います そんなに色のバリエーションを増やすのが、難しいのですか?
- ベストアンサー
- jihadX
- その他(プログラミング・開発)
- 回答数4
- scratchで人狼の司会をやりたい・・
scratchで人狼の司会を代わりにやってもらいたいです。良い方法ないですか?(power pointも可)
- 締切済み
- scrachsaiko-
- その他(プログラミング・開発)
- 回答数1
- MATLABのプログラムについて
画面表示されてから人が反応するまでの時間の傾向に関するデータを取得したくて、MATLABで以下のようなプログラムを作ったのですが、20回繰り返すようプログラムを作ったつもりが、3~4回で止まってしまうのです。恐らくプログラムに誤りがあるんだと思うのですが、何度見ても問題点が見つからず、困っております。どなたか修正が必要な点についてアドバイスいただけないでしょうか? よろしくお願い致します。 try Screen('Preference', 'SkipSyncTests', 1); DisableKeysForKbCheck(232:256); [w, wr]=Screen('OpenWindow',0 , 255 ,[]);%白色全画面表示 %一旦固視点を呈示 fx=wr(3)/2; fy=wr(4)/2; Screen('DrawLine', w, 0, fx, fy-10, fx, fy+10);%固視点【二】 Screen('DrawLine', w, 0, fx-10, fy, fx+10, fy);%固視点【二】 Screen('Flip',w); WaitSecs(0.5); %ここまで完璧 for i=1:20%20回繰り返したいです a=randperm(20);%20をランダムにします if rem(a(i),2)==0%私の大好きなやつです。 word1='X'; elseif rem(a(i),2)==1 word1='T'; end b=randperm(35);%1から35までをランダムに並べた1列の行列 for stm=1:15%15回繰り返したいです num=b(stm);%1から35のランダム列左14個が順番に入ります if stm==1 else word1='O'; end x=rem(num-1,7)*wr(3)/7; %選んだ箱の左にいくつの箱があるかを求めて、それに箱の幅をかける y=floor((num-1)/7)*wr(4)/5; %上にいくつの箱があるかを求め、それに箱の高さをかける tb=Screen('TextBounds',w, num2str(stm));%これは一旦気にしなくて良い Screen('DrawText', w, word1, x-25, y-25, 0); end Screen('Flip', w);%呈示する瞬間は1回でいいです。 KbWait;%何かキーが押されるまで待ちましょう。 end Screen('CloseAll'); catch Screen('CloseAll'); psychrethrow(psychlasterror); end
- 締切済み
- katamogura
- その他(プログラミング・開発)
- 回答数2
- powershellでexcelシート操作時エラー
powershellで複数のexcelファイルを各々一つの既存excelファイルの各ワークシトに書き込む方法として下記のコードで実行するとワークシート名にファイル名と同じシート名がある場合「sheet1(2)」となって追加されます。結果自体問題ないのですが、powershellの方に次のメッセージが出ます。このメッセージは、無視していいのかあるいは出ないようにする対処方法があるのかお教えください。 発生したエラーメッセージ OperationStopped: Line | 7 | $Workbook.Sheets.Item($Worksheet.Index - 1).Name = $Everyexcel.Name.R … | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | この名前は既に使用されています。別の名前を入力してください。 実行コード $ExcelObject=New-Object -ComObject excel.application $ExcelObject.visible=$false $ExcelObject.DisplayAlerts=$false #$ExcelFiles=Get-ChildItem -Path D:\test_data\data\*.xlsx $ExcelFiles=Get-ChildItem -Path @("D:\test\test\book1.xlsx","D:\test\test\book2.xlsx") $outputFile = "D:\test_data\AAE.xlsx" $Workbook=$ExcelObject.Workbooks.Open($outputFile) $Worksheet=$Workbook.Sheets.Item(1) foreach($ExcelFile in $ExcelFiles){ $Everyexcel=$ExcelObject.Workbooks.Open($ExcelFile.FullName) $Everysheet=$Everyexcel.sheets.item(1) $Everysheet.Copy($Worksheet) $range = $Workbook.Sheets.Item($Worksheet.Index - 1).usedRange $range.EntireColumn.AutoFit() | out-null $Workbook.Sheets.Item($Worksheet.Index - 1).Name = $Everyexcel.Name.Replace(".xlsx", "") $Everyexcel.Close() } $Workbook.SaveAs($outputFile) $Workbook.Close($true) $ExcelObject.Quit() [System.Runtime.Interopservices.Marshal]::ReleaseComObject($Worksheet) > $null [System.Runtime.Interopservices.Marshal]::ReleaseComObject($Workbook) > $null [System.Runtime.Interopservices.Marshal]::ReleaseComObject($ExcelObject) > $null [gc]::Collect() [GC]::WaitForPendingFinalizers() よろしくお願いいたします。
- ベストアンサー
- turu575
- その他(プログラミング・開発)
- 回答数1
- vscodeの実行について
vscodeのrunボタンをクリックした際、terminalが自動で起動してくれなく困っています。 状態としては、outputに出力は問題なくできています。terminal自体もcdコマンドでファイルの場所まで移動、実行することで動いています。どなたかご教授ください。
- 締切済み
- exusial
- その他(プログラミング・開発)
- 回答数1
- Pwshで複数excelを一つに纏めた際のシート名
powershellで複数のexcelファイルを各々一つのexcelファイルの各ワークシトに書き込む方法として下記コードで実行できますが、ワークシート名が「sheet1(2)」となります、これをファイル名「book1」に自動で変更できるようにする方法を教えください。 $ExcelObject=New-Object -ComObject excel.application $ExcelObject.visible=$true $ExcelFiles=Get-ChildItem -Path @("D:\test\test\book1.xlsx","D:\test\test\book2.xlsx") $outputFile = "D:\test_data\AAE.xlsx" $Workbook=$ExcelObject.Workbooks.Open($outputFile) $Worksheet=$Workbook.Sheets.Item(1) foreach($ExcelFile in $ExcelFiles){ $Everyexcel=$ExcelObject.Workbooks.Open($ExcelFile.FullName) $Everysheet=$Everyexcel.sheets.item(1) $Everysheet.Copy($Worksheet) $Everyexcel.Close() } #$Workbook.SaveAs("D:\test\test100.xlsx") #$ExcelObject.Quit() [System.Runtime.Interopservices.Marshal]::ReleaseComObject($Worksheet) > $null [System.Runtime.Interopservices.Marshal]::ReleaseComObject($Workbook) > $null [System.Runtime.Interopservices.Marshal]::ReleaseComObject($ExcelObject) > $null [gc]::Collect() [GC]::WaitForPendingFinalizers() なおコピー元のファイルは $ExcelFiles=Get-ChildItem -Path D:\test\test\*.xlsx の方が便利ですがexcelファイルが多数あるため敢えて個別に記入しています。 よろしくお願いいたします。
- ベストアンサー
- turu575
- その他(プログラミング・開発)
- 回答数1
- プログラミングの学習法
プログラム経験者にお聞きします。 プログラミング未経験の人が未知の言語を書籍で勉強するとき、本の中身すべてを読んでおかないといけないのでしょうか?
- ベストアンサー
- saya100111
- その他(プログラミング・開発)
- 回答数9
- プログラミング言語の選び方
プログラミングを学習するうえで、プログラミングの実務経験がなくほぼ初学者レベルでもとっつきやすい言語は何ですか?
- ベストアンサー
- saya100111
- その他(プログラミング・開発)
- 回答数9
- 効率化について
仕事内容をどこか効率化するところはありますか?? 今のところファイル名変更、入力順に印刷、で、まとめて順に確認できるようなマクロを作り、少しは、処理しやすくなりました。ですが複数のpdfファイルの扱いに時間がかかっている気がします。 仕事は、pdf注文書(複数の会社から色んなフォームあり)が、フォルダに入ります→ 注文には納期が決められており、優先順位をつけるため、全てのpdfファイルに目をとおす (AdobeAcrobatproを使用してるが重いため、全てに目を通す時間が勿体無い。50件くらいある。時間があればファイル名に納期をつけたりする。なければひたすら開いて事務処理して、、をとにかく急いでする。) ファイルを開きpdf注文書内容をパソコンに打ち込み商品を発注する →pdf注文書は客先に返信するため、スタンプを押し納期を知らせる(pdfを少し編集) →ファイル名に採番することで処理済→ で、一連の受注事務処理が終わるのですが、何か短縮できるマクロやプログラム、効率化案ありますでしょうか? Windows10使用
- ベストアンサー
- ゆず
- その他(プログラミング・開発)
- 回答数2
- プログラミングサイトについて。
コードプレップというプログラミングサイトは、何の言語が学べるのでしょうか?全種類挙げて頂けると幸いです。
- 締切済み
- zasx1097
- その他(プログラミング・開発)
- 回答数5
- 次の規則性に則って自動で数値を入力させたい
次のような規則性に則って自動で数値を、最終的にテキストデータ(.txt)へ入力させたいです。 まず規則性がわかる部分を明記しておきます。 0|1 20|1 20|0 50|0 50|1 70|1 70|0 100|0 100|1 120|1 (中略) 86350|0 86350|1 86370|1 86370|0 86400|0 ……と続いていき、86400|0 まで続きます。 規則性を説明しますと…… まず0のとき右は1、左を20足して右はひとつまえと同じく1。 20で0に切り替わり、左を30足して(50)右はひとつ前と同じく0。 50で1に切り替わり、左を20足して右はひとつ前と同じく1。 ……という具合に加算されていきます。これを自動で入力させたいのですが、方法が分かりません。なにぶん「86400」まで(あるいはその近似値まで)入力しなくてはいけないので、手入力だと比喩じゃなく実際に丸一日かかってしまいます。 なお、左に加算していく数は変える可能性があるので、それを加味して対応できる方法を教えていただけますと幸いです。スプレットシートなどを利用してできるでしょうか? ちなみに状況を把握してもらいやすいように数字の意味を説明しますと、左は秒数、右はとあるプログラムのオンオフ。1がオンで0がオフ。 0~20秒まではオンにして20~50秒はオフ、そしてまた50秒から20秒間オンになり70秒から30秒間オフ……という20秒・30秒周期でオンオフを繰り返すような規則性に則った動きとなっています。
- ベストアンサー
- okwave7722taro
- その他(プログラミング・開発)
- 回答数1
- VBS 更新日が前日のファイルを全てコピーする
いつもお世話になっております。 タスクマネージャーを使用して、午前1時ぐらいに、更新日が前日のファイルを前日の日付になったフォルダにコピーしようと思ってます。 VBSで前日のフォルダを作成するは出来たのですが、更新日が前日の分だけコピーってどうやるの?で躓いております。ネットで調べたのですが、チンプンカンプンで焦っております。教えて頂けると助かります。よろしくお願いします。
- ベストアンサー
- hidenori-world
- その他(プログラミング・開発)
- 回答数1
- 複数csvファイルをexcelの各シートに書込む2
前回powershellを使い複数のcsvをそれぞれのシートに分けて新規Excelファイルとして書き込む方法についてお教え頂きましたが、既存ファイルの場合下記の下記のコードのようにすると既存シートがある場合既存のシートにシート名を変え書き加えられることになります。既存シートをそのままにして新規シートとして追加するような方法をお教えください。 $csvFiles = @("D:\test_data\test_data1.csv", "D:\test_data\test_data2.csv") # Excelファイルのパス $excelPath = (Get-ChildItem "D:\test_data\AAA.xlsx").FullName $excel = New-Object -ComObject Excel.Application $excel.Visible = $true $book = $excel.Workbooks.Open($excelPath) foreach ($index in 0..($csvFiles.Length - 1)) { if ($index -eq 0) { $sheet = $book.Sheets.Item(1) } else { $sheet = $book.Sheets.Add() } $sheet.Name = "data" + ($index + 1) $startRange = "C2" $QueryTable = $sheet.QueryTables.Add("TEXT;"+$csvFiles[$index], $sheet.Range($startRange)) $QueryTable.TextFileCommaDelimiter = $True $QueryTable.TextFilePlatform = 65001 $QueryTable.TextFileStartRow = 1 $QueryTable.Refresh($false) $QueryTable.Name = "仮テーブル" $QueryTable.Delete() } [System.Runtime.Interopservices.Marshal]::ReleaseComObject($sheet) > $null [System.Runtime.Interopservices.Marshal]::ReleaseComObject($book) > $null [System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) > $null Remove-Variable sheet, book, excel [gc]::Collect() [GC]::WaitForPendingFinalizers() なお、csvファイルの指定方法は違います(ファイル名で指定する方が分からないのでコピペのコードそのままに近い)がExport-Excelを使った下記コード場合同じシート名がある場合は、そのシートに書き込まれますがそれ以外は新規シート名(csvファイル名)として付け加えられます。 $csvs = Get-ChildItem .\* -Include *.csv $csvCount = $csvs.Count Write-Host "Detected the following CSV files: ($csvCount)" foreach ($csv in $csvs) { Write-Host " -"$csv.Name } $excelFileName = "D:\test_data\AAD.xlsx." Write-Host "Creating: $excelFileName" foreach ($csv in $csvs) { $csvPath = ".\" + $csv.Name $worksheetName = $csv.Name.Replace(".csv","") Write-Host " - Adding $worksheetName to $excelFileName" Import-Csv -Path $csvPath | Export-Excel -Path $excelFileName -WorkSheetname $worksheetName -StartRow 2 -StartColumn 3 } しかしならこの方法では大きなデータの場合処理時間を要することになります。処理時間で言うなら下記コードの方が一番速いですがやはり新規シートに置き換えられる問題があります。 $sourceFiles = @("D:\test_data\test_data1.csv", "D:\test_data\test_data2.csv") $outputFile = "D:\test_data\AAE.xlsx" $excel = New-Object -ComObject Excel.Application $excel.Visible = $false $excel.DisplayAlerts = $false $outputWorkbook = $excel.Workbooks.Add() $index=1; foreach ($sourceFile in $sourceFiles) { $workbook = $excel.Workbooks.Open($sourceFile) foreach ($sheet in $workbook.Sheets) { $sheet.Copy([ref]$outputWorkbook.Sheets.Item($outputWorkbook.Sheets.Count)) } $index=$outputWorkbook.Sheets.Count $workbook.Close($false); } $outputWorkbook.Sheets.Item($index).Delete() $outputWorkbook.SaveAs($outputFile); $excel.Quit(); [System.Runtime.InteropServices.Marshal]::ReleaseComObject($outputWorkbook) | Out-Null; [System.Runtime.InteropServices.Marshal]::ReleaseComObject($excel) | Out-Null; Write-Output "Sheets have been combined into $outputFile"; 私のコピペ能力ではここまでです。シート名が同じの場合は上書きされそれ以外は新規シートとして追加される方法になれば幸いです。よろしくお願いいたします。
- ベストアンサー
- turu575
- その他(プログラミング・開発)
- 回答数2