X



Excel総合相談所 135

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@そうだ選挙にいこう
垢版 |
2019/05/02(木) 08:46:03.35
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可・否

▼━関連スレ━━━━━━━━━━━━

前スレ
Excel総合相談所
https://find.5ch.net/search?q=excel

Excel VBA 質問スレ
https://find.5ch.net/search?q=excel+vba

【質問不可】Excel総合相談所スレの雑談・議論スレ
https://find.5ch.net/search?q=excel+%E3%80%80%E7%9B%B8%E8%AB%87%E6%89%80
0079名無しさん@そうだ選挙にいこう
垢版 |
2019/05/08(水) 20:27:59.26
>>74
文字列になっているので作業列を使って日付型に直す

B1=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,
"(日)",""),"(月)",""),"(火)",""),"(水)",""),"(木)",""),"(金)",""),"(土)","")
,"年","/"),"月","/"),"日",""),"午前",""),"午後","")+IF(ISERROR(FIND("午後",A1)),0,1/2)

後はB列を基準に並び替え
0081名無しさん@そうだ選挙にいこう
垢版 |
2019/05/08(水) 20:50:33.70
日付を抜き出す式 =DATEVALUE(LEFT(A1,FIND("日",A1)))
時刻を抜き出す式 =TIMEVALUE(RIGHT(A1,LEN(A1)-FIND("午",A1)-1))+TIMEVALUE("12:00:00")*(SUBSTITUTE(A1,"午後","")<>A1)
日付+時刻は2つの答えを足し算するだけ
008374
垢版 |
2019/05/08(水) 23:37:51.02
>>79
>>81
ものすごく助かりました。
2日間悩んだのが嘘のようです。
Excelって奥が深いんですね
本当にありがとうございました<(_ _)>
008446
垢版 |
2019/05/09(木) 00:00:18.21
ありがとうございます。
End If
を付ければうまくいきました。
少しずつ勉強していきます。
008546
垢版 |
2019/05/09(木) 00:01:54.21
>>62
ありがとうございます。
End If
を付ければうまくいきました。
少しずつ勉強していきます。
0086名無しさん@そうだ選挙にいこう
垢版 |
2019/05/09(木) 00:57:45.82
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel365
【3 VBAが使えるか    .】
【4 VBAでの回答の可否】
私自身は365を持っていないのですが、365ユーザーに操作を聞かれて困っています。
「非表示にした行」は、どう操作すれば表示に出来るでしょうか?

ちなみにExcel2010での操作は、非表示にされている辺りの行をまとめて選択して、
(または名前ボックスから直接非表示行を"A55:A71"と言った具合に入力指定して)
”ホームタブ>書式>非表示/再表示>行の再表示”でした。
0087名無しさん@そうだ選挙にいこう
垢版 |
2019/05/09(木) 01:04:42.33
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
開いているIEを全て閉じ、特定のurlを開き、カーソル位置に文字を入力したいのですが、どう書けばいいでしょうか
文字入力はカーソルがアクティブになってればsendkeyでいけますよね?
0088名無しさん@そうだ選挙にいこう
垢版 |
2019/05/09(木) 08:30:19.26
>>86
>”ホームタブ>書式>非表示/再表示>行の再表示”でした。
どっちでもいいけど、右クリックの再表示の方が早くない?

あとこのスレ教えて上げればいいよ
誰かテキトーに答えてくれる

>>87
開いてるIEってエクセルから開いたIEオブジェクトの事?
それとも普通のIE?
後者だとかなりキツイ
0089名無しさん@そうだ選挙にいこう
垢版 |
2019/05/09(木) 08:38:19.01
フィルターかかってる行があるだけかもね
0090名無しさん@そうだ選挙にいこう
垢版 |
2019/05/09(木) 08:55:55.57
>>87
とりあえず前半だけ
IEを全部閉じる
後半は俺には高度すぎて無理だ

Sub CloseAllIe()
  Dim oSA As Object
  Dim oWT As Object
  Set oSA = CreateObject("shell.Application")
  For i = oSA.Windows.Count To 1 Step -1
    Set oWT = oSA.Windows(i - 1)
    If TypeName(oWT) = "IWebBrowser2" Then oWT.Quit
  Next
End Sub
0091名無しさん@そうだ選挙にいこう
垢版 |
2019/05/09(木) 18:28:23.01
>>88
前者で大丈夫です
自分でもgetelementbyidなるものでやってまたんですが原因不明のオートメーションエラーとやらが出てしまいました・・
0094名無しさん@そうだ選挙にいこう
垢版 |
2019/05/09(木) 23:49:40.00
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

[タブ1]ページ1,ページ2,ページ3
[タブ2]ページ1,ページ2,ページ3,ページ4
[タブ3]ページ1
[タブ4]ページ1,ページ2
[タブ5]ページ1,ページ2
 ・
 ・
[タブ20]ページ1,ページ2

このようなエクセルファイルがあり、
[タブ1]の全ページ、[タブ3]の全ページ、[タブ4]の全ページ、[タブ6]の全ページ、・・・[(タブ20ほどまである)]と、
印刷の必要のないタブは除いて、全ページ印刷を行いたいです。

[タブ1]をクリック→作業中のシートを印刷→[タブ3]をクリック→作業中のシートを印刷→[タブ4]をクリック→作業中のシートを印刷・・・とやると果てしない作業になってしまうので、なんとか「ブック全体を印刷」で印刷できるようにしたいのです。
(印刷の必要のないタブを消すと、計算式などが絡まっているらしく、他のタブに影響があるために消せません)

@[タブ2][タブ5]をあらかじめ「ブック全体を印刷」では印刷されないようにする操作などはありますでしょうか?
印刷範囲の設定、でできるかなと思ったのですが、印刷範囲を無くすことはできませんでした。

A印刷範囲を完全に消すことができないなら、ページ指定で「1-3,8,9-10」のように指定すればいいのでは、
と思ったのですが、2016では[]から[]までという入力しかできないようです。
不可能でしょうか?

Bどれをタブを印刷しますか?□タブ1 □タブ2 □タブ3 ・・・ みたいなのがでてきて、
これとこれとこれーとチェックいれたら印刷できるーみたいなのがあれば最高なんですが
そういうアドインとか機能はありませんでしょうか?
0095名無しさん@そうだ選挙にいこう
垢版 |
2019/05/10(金) 00:11:33.73
if(A1="","",○○)で空白が入力されたセルを更にcountifsで参照すると"<>"を空白と認識してくれません
if(A1="",0,○○)にして"<>0"なら認識するんですが
空白無理ですか?
009894
垢版 |
2019/05/10(金) 00:17:48.24
[タブ2]ページ1,ページ2,ページ3,ページ4
[タブ5]ページ1,ページ2
[タブx]ページ1,ページ2
[タブx]ページ1
-----いらないタブを前半にもっていって----
[タブ1]ページ1,ページ2,ページ3
[タブ3]ページ1
[タブ4]ページ1,ページ2
 ・
 ・
[タブ20]ページ1,ページ2

で、[タブ1]の最初のページ〜最後のページを印刷すれば
一気に印刷できてクリック数も減る気がしてきました。
・・・スマートですかねこれ
0102名無しさん@そうだ選挙にいこう
垢版 |
2019/05/10(金) 00:23:14.82
>>99
そこは統一されてると思う

>>100
あぁ、そうだ。作業列でcounta()でやってた
もしかしてcountifs()だと無理なのか

>>95
出来るかもしれないが、無理な気がする。
俺なら諦めて条件の数だけ作業列作ってしまうかなぁ
010394
垢版 |
2019/05/10(金) 00:29:15.62
すいません(´д`)
タブの中に不必要なページがなかったので、
印刷の必要がないセルを「非表示」にするだけで希望がかないました
お目汚しすみません
0104名無しさん@そうだ選挙にいこう
垢版 |
2019/05/10(金) 00:33:08.21
>>102
もう容量いっぱいいっぱいで
作業列追加するのもキツイかなぁというところです
空白認識できなければifを0にしてcountifsを"<>0"でやっとくのがいいですかね?
0108名無しさん@そうだ選挙にいこう
垢版 |
2019/05/10(金) 12:46:34.60
>>107
言葉足らずごめん
IE上で動いてるシステムでtabキーでリンクフォーカスしてenter押してもリンク先が開かないんだよね
spaceでもだめだった
0114名無しさん@そうだ選挙にいこう
垢版 |
2019/05/11(土) 01:40:47.08
前任者の作ったシートがやたら重くて不評で「どうして重いのか見て貰えないか?」と言われて直してるんですが、
全てのVLOOKUPをINDEXに変えたり、無駄に名前があるセルの名前を廃止したり、変える必要も無いセルで無駄に条件付書式で色換えするセルを廃止したりで
一応は軽くなったんですが
こういうのを見つけてしまいました

AA7〜AA900まで、前半は変動するZを使って居るんですが後半が全く同じ式
AA7=Z7*1.08*IF($A$2="2倍修正",2,1)

AA900=Z900*1.08*IF($A$2="2倍修正",2,1)

私の更に後任者になるだろう人に分かり易くするために、この後半のIF($A$2="2倍修正",2,1)を適当な作業セルAZ2辺りに移して

AZ2=IF($A$2="2倍修正",2,1)

AA7=Z7*1.08*AZ$2

AA900=Z900*1.08*AZ$2

としておくべきでしょうか?
同じ計算を893回もやっているのを1つに纏めるわけですから既にVLOOKPU廃止などで軽くなっているものの、もう少し軽くなるでしょうし、分かりやすくなる…と思うのですが…
どうでしょうか?
0115名無しさん@そうだ選挙にいこう
垢版 |
2019/05/11(土) 03:57:46.61
将来的にはマシンスペックが上がるから必要ないんじゃ?

それよりも「1.08」を設定セル作って一ヵ所直せば全てに反映されるようにすべき
0116名無しさん@そうだ選挙にいこう
垢版 |
2019/05/11(土) 07:49:23.49
いまどきのPCでたかだか1000行くらいで重いのは異常 昔は3000行あると重いなーということがあったもんだが
おそらく原因は条件付き書式の増殖 
0120名無しさん@そうだ選挙にいこう
垢版 |
2019/05/11(土) 12:12:28.35
>>119
ググった
index+matchのほうが結構早いんですね
しかし本質的に完全一致が遅い原因でそこを工夫するべきと
勉強になりましたサンクス
0121名無しさん@そうだ選挙にいこう
垢版 |
2019/05/11(土) 17:41:46.08
A列は固定の西暦(2019など)、B列に四桁の月日(0511など)C列に日数(60など)を入れて
D列に2019年5月15日の60日前を「何年何月何日」として
E列には同じように60日後を表示させたいんですがうまくいきません。

B列を年月日のデータにしてしまえば簡単なんですが、どうにかなりませんか?
0126名無しさん@そうだ選挙にいこう
垢版 |
2019/05/11(土) 22:24:21.92
>>125
多用したシートのファイル容量

あと、
1,2,3,4,5,6,7と並んでいるのを完全一致で検索するのはINDEXでも出来るが
2.7.9.10.13みたいな間が開いた数字を、以上以下で検索出来るのはVLOOKPだけ
0127名無しさん@そうだ選挙にいこう
垢版 |
2019/05/12(日) 00:12:02.34
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013 15.0.5049.1000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否(っていうか、VBA関係ないので)

5月を和暦で表示しても、H31.5.12などと表示されてしまい、
令和にならないのですが、どうしてでしょう?
Windows10の時計は令和対応になってますし、
レジストリにも令和が書き込まれているのですが。
再起動してもダメです。
Excelのバージョンが古いのかと思いましたが、
更新しようとしても、最新バージョンですと言われます。
0129127
垢版 |
2019/05/12(日) 00:54:12.26
↑すいません、取り消します。
やっぱ令和表示できなくていいです。
KB4495667のせいで、シート上に配置したコマンドボタンの位置が、
ありえないことになってしまったので、アンインストしました。
0131名無しさん@そうだ選挙にいこう
垢版 |
2019/05/12(日) 13:10:40.15
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

この上の画像のシートに入力して下のシートの領収書作りたいんですけど、
下の#NEME?のところに関数入れてその横の"2"のところに数字入れると、リストの2行目を参照するみたいなの作りたいんだけど、#NEMEのところにどんな関数いれれば良いか教えて下さい
というか関数でできますか

https://i.imgur.com/371l4bZ.jpg
https://i.imgur.com/GCr4fmE.jpg
0132名無しさん@そうだ選挙にいこう
垢版 |
2019/05/12(日) 13:21:36.39
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Office 365 Solo
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

図形で直線と四角・丸はコネクトできますが
直線同士でコネクトさせる方法をお聞かせください
0133131
垢版 |
2019/05/12(日) 13:25:44.29
できればoffsetの関数を使ったやり方教えて下さい
0135名無しさん@そうだ選挙にいこう
垢版 |
2019/05/12(日) 16:39:06.18
>>131
そういう数式はM1セルに入れるんじゃなくて、A5とかM6に書いた方がいいんじゃない?
それともアドレスを文字列で作ってINDIRECTとか使うつもりだったりする?

とりあえず
A5 =OFFSET(Sheet1!A1,N1,3)
M6 =OFFSET(Sheet1!A1,N1,2)
E9 =OFFSET(Sheet1!A1,N1,4)

みたいな感じでいいんじゃないかな
0136131
垢版 |
2019/05/12(日) 17:46:23.51
>>135
なるほど。offsetの使い方勘違いしてました。勉強になります。
ありがとうございました。
0137名無しさん@そうだ選挙にいこう
垢版 |
2019/05/12(日) 18:01:51.87
>>132
> 直線同士でコネクトさせる方法をお聞かせください
直接は無理じゃねーの?
俺はダミーの透明図形(例えば○)を置いて各々それに接続してる
0138名無しさん@そうだ選挙にいこう
垢版 |
2019/05/12(日) 20:19:10.60
日付1-1(例:1992/10/1 0:00:00) 値1 値2 値3
日付1-2(1992/10/1 0:01:01)
日付1-3


日付1-1000
日付2-1
日付2-2
日付2-3


日付2-1000

1日の中で数秒刻みに値が記録されているシートがあるのですが
グラフを生成しようとするとパフォーマンス的に出力し切れなかったので
日別(各日記録された先頭の1行だけを抽出(時間以下は切り捨て)シートを作成したいです
どのように行えば良いでしょうか
0142名無しさん@そうだ選挙にいこう
垢版 |
2019/05/12(日) 23:38:02.53
>>141
そうすると、テンキーのないキーボードでnumlockが他のキーと兼用になっている場合、マウスキー機能を有効にする場合はshift +alt +numlock +fnだ思うんだけど、sendkeyじゃ対応できないですか?
ちなみに>>110です
マウスキー機能ならあるいは・・と思いついてみたけどダメですかね
0144名無しさん@そうだ選挙にいこう
垢版 |
2019/05/12(日) 23:48:51.09
すでに開いている IEのリンクをvbaでクリックしたい
→getelementbyid等はどうしても理解できなかったし上手くいかなかった→
tabキーを適当な回数押して該当箇所にフォーカスした状態でenter押すようにsendkeyしよう→
なぜかフォーカスenterができないページだった(>>109)→
マウスキー機能使えば行けるんじゃないか→
マウスキー機能に入るためのキー操作shift+alt +numlock +fnで躓く
素人丸出しでごめんなさい
0148名無しさん@そうだ選挙にいこう
垢版 |
2019/05/12(日) 23:59:38.98
>>145
社内システムの仕様が絡むので説明しづらいんですがgetelementbyidが厳しそうなんですよね、二窓以上で開くとすぐログイン競合とみなされてログアウトするとか
0149名無しさん@そうだ選挙にいこう
垢版 |
2019/05/13(月) 07:18:33.20
>>144
マウスキー機能なんてあったのか、知らなかった
fnは関係ないな。
shift+alt +numlockをsendkeyで送るだけでいいはず

getelementbyidと二窓以上は関係ないよ
0150名無しさん@そうだ選挙にいこう
垢版 |
2019/05/13(月) 07:33:02.21
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel365
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 不可

列でなく、行にフィルターつけれませんか?
0152sage
垢版 |
2019/05/13(月) 15:59:11.26
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

西暦から会期を求める関数を教えてください。
会期は2月21日から翌年2月20日で

セルA1が「2018/1/11」ならB1に「2017年度」
セルA2「2018/4/3」ならB2に「2018年度」

と表示させるためのB列の関数を教えてください。
0157名無しさん@そうだ選挙にいこう
垢版 |
2019/05/13(月) 19:57:03.64
質問ですがご回答よろしくお願いします
【1 OSの種類         .】 Windows8
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

VBAやマクロが使えないので関数で抽出したいのですが

     列  A     B
行 1    A商店  750円
   2    B商店  600円
   3    C商店  650円

このような場合一番安い値段を提示している「B商店」を抽出したいのですがやり方が分かりません
値段ではなくあくまでも「B商店」と出したいのです
処理的にはまずB行から最安値を探し、その次にA行の同列の「B商店」を抽出する
やりかた分かる方いれば教えてください。
よろしくお願いします。
0159名無しさん@そうだ選挙にいこう
垢版 |
2019/05/13(月) 20:42:12.67
>>158
ありがとうございます
その数式を当てはめてみたんですがブックに「循環参照が見つかった為〜」とエラーが出てしまい0になってしまいました
できれば同じ数字がある状態でできないでしょうか?
同じ数字がある場合は一番上の列のお店を出るようにしたいです
よろしくお願いします
0161名無しさん@そうだ選挙にいこう
垢版 |
2019/05/13(月) 20:48:02.73
>>158
すごいできました
すみませんその数式をコピーして貼り付けただけだったのでエラーがでてしまいました
列番をいれてみたらちゃんとB商店とでました
ありがとうございます
さすがです!
0164名無しさん@そうだ選挙にいこう
垢版 |
2019/05/14(火) 10:15:18.67
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 全コピペでいけるなら可

ブックの最初の形式としては、『1』と『テンプレート』のシートが1枚あります。
2日以降はテンプレートのシートをもとに今日までのシートを自動で追加作成したいです。
今日14日に開いたときは1〜14の名前のシートがある状態にしたいのです。
・1日に開いたら『1』のシートだけある。
・5日に初めて開いたら『2』〜『5』のシートを自動で追加作成。
・5日に一度開いて保存して10日に開いたら『6』〜『10』のシートを自動で追加作成。
というイメージです。
どうやればよいでしょうか?
0165名無しさん@そうだ選挙にいこう
垢版 |
2019/05/14(火) 10:33:05.39
>>164
workbookに記述

Private Sub Workbook_Open()
For i = 1 To Day(Date)
'シートの有無確認。あればtrue
flag = False
For Each ws In Worksheets
If ws.Name = i & "" Then '文字列で比較
flag = True
Exit For
End If
Next

If flag Then
'none
Else
'シート作成
Set シート = Sheets.Add(After:=Worksheets(Worksheets.Count))
シート.Name = i
End If
Next
End Sub
0166名無しさん@そうだ選挙にいこう
垢版 |
2019/05/14(火) 12:28:05.26
A1〜C3までを範囲として、
1 2 3
4 5 6
7 8 9
のように数字が並んでいて、
sendkeys A1
sendkeys B1
sendkeys c1
をひとまとめ、
sendkeys A2〜を二まとまりめ、
という形で飛ばしたいと思ってます
範囲はもっと下まで行くこともあるので最終行の取得は必須だと思いますが、どう書けばいいでしょうか
0170名無しさん@そうだ選挙にいこう
垢版 |
2019/05/14(火) 18:58:55.46
>>166
https://dotup.org/uploda/dotup.org1847293.xlsx.html
東京・大阪・北海道の各出発時間・到着時間を黄色い部分に「sendkeysで」、「それぞれ東京・大阪・北海道の順序を守って」入力したいです。
実際にsendkeysでキーを送るのはブラウザ上のフォームであるため、順序等が変更できません
また入力するのが東京・大阪・北海道だけでないかもしれないので、記載してある行すべてというイメージでお願いします
0175名無しさん@そうだ選挙にいこう
垢版 |
2019/05/14(火) 23:13:34.84
好きって言うか、本当はVisual Studioが良いんだけど、
会社のPCに入ってないので、仕方なくExcel。
でもまあExcel使わせてもらえるだけいいわな。
中には、Calcにされちゃったところもあるだろうし。
0176名無しさん@そうだ選挙にいこう
垢版 |
2019/05/15(水) 00:30:37.64
【1 OSの種類        .】 Windows8
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 始めたばかり
【4 VBAでの回答の可否】 可

すみません教えて下さい

VBAでワークシートに設置したボタンを押すと、指定したセルに記載してあるワークシートを読み込み
そのワークシートの複数の範囲を再計算をするプログラムが分かりません。
再計算の理由は演算式を消したいからです。
また、sum等の関数で求めた値を再計算すると3.2000000038のようになるのですが
表面だけではなくちゃんと3.2の値にしたいと思います。
よろしくお願いします
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況