▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に
>>2-20 あたりの注意書きやQ&Aを必ず読むこと。
★4 質問テンプレ(雛形)は必須じゃないけど、
OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
VBAを使うのは避けたいって場合は「否」にしましょう。丸投げする場合は、必要に応じてブックをアップすること。
※【5】は、あなたがGoogleやヘルプで検索した際に使ったキーワードを書いてください。
まだ検索してないなら、質問の前にGoogleやヘルプで検索してみてください。
ttp://www.google.co.jp/ 前スレ
Excel総合相談所 91
http://pc11.2ch.net/test/read.cgi/bsoft/1270542226/
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━ ・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F) ・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意 ・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。何レス使っても構いません。 ・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。 ・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。 ・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。 ここは技術的な質問のみで。 ・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能で Excelに関係ないことも出来ます。 Excelの操作に関係ない部分は、スレ違いなのでここで聞かずにVB言語やAPI、COMについて自分で勉強し、 どうしてもわからない部分はVBスレやAPIスレなどの該当スレで質問しましょう。 但し向こうはプログラマのスレなので、構文規則などの最低限の事は覚えてから質問しましょう。 ここみたいに丸投げはダメですよ。 ・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。 例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。 その上で、どううまくいかないのかを具体的に書きましょう。 エラーが出るなら、何処でどういうエラーが出るのか、 想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。 ・9 マルチはダメ。一度マルチしたら、謝っても他のスレの質問を取り下げても回答は得られないと思ってください。 ・A テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、 チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、 ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。 ・B 書籍や解説サイトの紹介以来はスレ以外。ここは技術的な質問のみで。
3 :
名無しさん@そうだ選挙にいこう :2010/05/24(月) 19:37:06
★ルールを無視すると…
>>1-2 あたりのルールに従うか否かは自由だけど、従わないと以下のような不利益があるよ
★1.マルチをしてしまったら…
A.謝っても他での質問を取り下げても、以後その質問に対する回答は付かない物と思ってください。
それが嫌なら初めからマルチなんてしないように。
>>2 にマルチ禁止と書いてあり、
マルチの意味が分からなければ検索すれば出てくるので、「知らなかった」は通用しません。
★2.
>>1 ★4に従わず、必要な情報を出さないと…
A.自分の使用しているバージョンで使えない機能を答えられたり、VBA使えないとか使いたくないと書かないと
VBAでの解決OKで自分でコード書けるものと勝手に解釈されて、「VBAで出来るから自分でコード書いて」程度の
適当な回答を返されたりします。また、ここではVBAコード書けない人の丸投げ依頼を許可してますが
これはきちんとルールに従って質問、依頼した人のみの特権です。
★3.情報・条件を後出しすると…
A.後から出された情報は意図的に無視されたり、質問自体を放置されたりします。
>>1 ★4の必須情報はもちろんのこと、要望や条件、既に試したことなどは、
長文になってもいいので詳細かつ明確かつ具体的に書きましょう。
★VBAについて
VBAとは、『Visual Basic for Application』の略で
Application
├Workbooks
|└Workbook
| ├Worksheets
| |└Worksheet
というApplication以下のオブジェクトを、VB言語で操作するものを指します。
例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法) ▼環境・書式 ・ 列数を256列以上、行数を65'536行以上に増やす (Excel2007では16'384列、1'048'579行扱える) ・ Excel2003以前で条件付き書式を3つ以上設定する (文字色だけなら、入力規則でも3つ設定可能。それ以外はVBA) ・ 行の高さを0.25きざみ以下の単位で指定する ・ セル内の文字を○で囲む、一部のみ2段にする (オートシェイプ、オブジェクト) ・ オートフィルタで英字の大小文字を区別する (小文字 → 半角、大文字 → 全角、と使い分ける) ・ 祝日を判断する (作業セルに祝日を列挙、VBA) ・ 同一列内でセル(行)ごとに列幅を変える、同一行内でセル(列)ごとに列高を変える (セルの結合) ・ ヘッダー・フッターのページ番号の開始番号任意指定、ページ番号演算、同シート内で違ったものを指定など ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する ・ 罫線幅の自由指定 ・ 表示形式で「10/ 1」といった書式を指定し、日付が一桁の場合のみ日付の前にスペースを入れる (TEXT関数、VBA) ・ 書式設定の「折り返して全体を表示する」と「縮小して全体を表示する」を同時に使う (折り返しを有効にして、手動で文字サイズを調整) ▼操作 ・ ファイラーの右クリックメニューからの新規作成で、Excelで設定したシート数のブックを作る (任意のシート数のテンプレートを作成) ・ 複数シートを選択して入力規則やシートの保護を設定する (VBA) ・ オートコンプリート機能を、別列や離れたセルで動作させる (VBA) ・ 選択範囲から一部を除く、Ctrlを押しながらの複数選択で一部を取り消す (VBA) ・ 優先キーを3つ以上指定しての並べ替え (優先度の低い方から順に並べ替える) ・ 1セルを分割 (分割したいセル以外を結合)
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法) ▼数式・関数 ・ 表示形式以外の書式の取得設定、書式情報を条件とする数式 (ユーザー定義関数) ・ 関数式でセルの選択状態を取得する (VBA) ・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA) ・ 入力したセルに結果を返す (VBA) ・ 範囲を引数にしての文字列連結 (ユーザー定義関数) ・ 値の書き換え、値の保持 (VBA) ・ 複数の結果を抽出、不定な数の結果を返す (VBA、結果の最大数が解っていれば最大数以上の式を論理式で組む) ・ 空白のセルの部分を上詰め、左詰めなどで表示する (作業セルを使って別セルに詰めて表示なら可能、それ以外はVBA) ・ VLOOKUP,HLOOKUP,MATCH等の関数で、検索語を全半角両方にマッチさせる (ユーザー定義関数) ▼VBA ・ ExecuteExcel4Macroの参照で空セルと0値を区別する ・ セルの値や変数値で直接変数名を指定する (配列、コレクション) ・ VBのコントロール配列と同じような操作をしたい (イベント以外ならコントロール名を「同名+連番」にしてControls(名前 & インデックス)で処理、イベントはクラスでWithEvents) ▼ユーザーフォーム ・ フォーム上から変更したプロパティ値の保持 (シートや外部ファイルに書き出して、次回読み込む) ▼グラフ ・ 棒グラフでひとつだけ突出したデータがあった場合に波線を入れて位置を合わせる (オートシェイプなどで見た目だけそうなるように弄る、別アプリでグラフを作り、オブジェクトとして挿入) ┌┐ 〜〜 ||
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。 間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。 Excel2007についても未確認な項目が多いので変更点が有ればご指摘下さい。 また、ここに書かれてないことでも、Excelで出来ないことはたくさんあります。 ここに書かれてないからといって必ず出来るはずだなんて思わないように。 >▼環境・書式 > ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する 補足 2007ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、 指定も同じくcm単位でできる。 ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように 近い値に勝手に丸められる。 以上でテンプレ終わり (Excel総合相談所 89からコピペしました)
7 :
複乳 :2010/05/24(月) 21:04:22
8 :
名無しさん@そうだ選挙にいこう :2010/05/24(月) 21:49:48
複乳の読み方を下でたしかめると「フクチチ」と出たのですが、合ってますか? Sub gg() MsgBox Application.GetPhonetic("複乳") End Sub
9 :
前996 :2010/05/24(月) 21:54:23
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 フォームコントロール 連動 御願いします。 (前997様の方法では連動しませんでした) シート1にあるフォームコントロール(チェックボックス1)に、 チェックをつけると、 シート2にあるフォームコントロール(チェックボックス4とフォームコントロール(チェックボックス5) も連動してチェックが付き(シート1のチェックを外すと4と5も外れる)、 かつシート2のA1セルに○を入力するといった 方法をとりたいのですが、どのように記述(VBA)したら良いでしょうか?
>>前スレ993さん、997さん セルの色は引き継がれませんでした。 でも、全セルをコピーするのは大きな収穫でした。 ちょっとギコチないですが、それなりに動いてます。 Sub 保存() WBN = ThisWorkbook.Name Cells.Select Selection.Copy Workbooks.Add ActiveSheet.Paste For Each BTN In ActiveSheet.Shapes BTN.Delete Next BTN ActiveWorkbook.Colors = Workbooks(WBN).Colors Range("A1").Select ActiveWorkbook.SaveAs "C:\data\" & "test.xls" End Sub
前スレの
>>979 です!
前スレ
>>981 様、ありがとうございます!
INDEX関数を、ようやく理解することができました!本当にありがとうございます!
12 :
名無しさん@そうだ選挙にいこう :2010/05/24(月) 22:39:53
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel 2007
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 Excel 積算 グラフ
質問です。
月次のデータと、積算データをこのようなグラフで表したいのですが、
http://markezine.jp/static/images/article/10329/nc.gif シートにどういう風にデータを入力していけばいいのかと、
どのグラフを選択すればわかりません(´;ω;`)ウッ…
どなたか親切な方、お教え頂けると幸いです。m(_ _)m
>>9 フォームコントロールのチェックボックスは
Sheets("Sheet1").CheckBoxes("Check Box 1").Value
とかでアクセスする
値は xlon 又は xloff
>>12 とりあえずグラフウィザードで折れ線にしたいものも含めて積み上げ棒グラフにして
折れ線にしたい系列を選んで右クリックしてグラフの種類を折れ線
かな
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 いいえ シートが100あるのですがいちいち手入力せずに EXCELかtxt状態の100行を貼り付けて一度に100シート名入力 できる方法はないでしょうか?
imigawakarimasen
SUIMASEN 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 いいえ ブックに100シート作りシート名を付ける場合いちいち手入力せずに EXCELかtxt状態の100行を貼り付けて一度に100シート名入力 できる方法はないでしょうか?
A・B 2種類の数列のグラフを作った時、Aの数値が200000〜2000000で Bが100%までの数値だとAだけが見えてBは見えません 右側に%軸を追加するためにBを右クリックするにも小さすぎてなかなか選択できません このような場合簡単に右縦軸に%軸を作成する方法はないでしょうか? ちなみにエクセル2007です
zoomshinahare
>>17 Alt+F11キー → 開いてるブックの名前で右クリック→挿入→標準モジュール。
以下 sub 〜 end sub までを全部コピペして、A列(A1〜空白行の前まで)に記入。
Alt+F8で Yatuke を選択して実行。
Sub Yattuke()
' A1以下に追加したい名前を列記して、Alt+F8で Yatuke を選択して実行。
' A列(A1〜空白行の前まで)に記入した内容でシートを追加するやっつけマクロ。
' やっつけなので、いろいろ不具合はあるが、とりあえず既存シートと同じ名前がなければ動く。
Dim SetSheet As String
Dim WorkRows As Integer
WorkRows = 1
SetSheet = ActiveSheet.Name
Do While Sheets(SetSheet).Cells(WorkRows, 1) <> ""
Sheets.Add
ActiveSheet.Name = Sheets(SetSheet).Cells(WorkRows, 1)
Sheets(SetSheet).Select
WorkRows = WorkRows + 1
Loop
End Sub
こういうのを求めてんのかな・・・?
21 :
12 :2010/05/25(火) 08:21:02
>>21 グラフを右クリックしてマーカーの変更、だったかな
形も色も大きさも変更できる
自分で作った画像も貼り付けられる
Excelで文字列の中に含まれた制御コードを判定したいのですが、うまくいきません。 例えばA1に改行だけを入れてB1に =if (A1=chr(13),"改行","") と入れて数式エラーになるのです… どうすればいいんでしょうか
すみません。 VBがchrなので、Excel関数もてっきり、同じかと思ってました。 charにしたらうまくいったよ!幸せゲットだよ!
25 :
名無しさん@そうだ選挙にいこう :2010/05/25(火) 16:38:23
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel 2003
【3 VBAが使えるか .】 いいえ
はじめて質問させてもらいます。
エクセルファイルで URLがいくつも入ったデータを持っているのですが、
URLの最後のアドレス部分のみ抜き取りたいのですが、可能でしょうか?
また可能な場合どういった作業になるのでしょう?
例
http://www.yahoo.co.jp/test/index.html セルに↑のようなデータが入っています。最後の部分index.htmlだけ抽出したいのです。
どうぞよろしくお願いします。
>>20 これはいわゆるVBAっていうやつでしょうか?
VBA使わずにできる方法はないでしょうか?
よろしくお願いします
27 :
複乳 :2010/05/25(火) 16:57:29
>>25 気持ち悪い方法を考えたぞ
=MID(A1,1+MAX(MOD(FIND("/",A1&"/",ROW(OFFSET(A1,1,0,LEN(A1),1))),LEN(A1))),LEN(A1))
としてctrl+shift+enter
29 :
25 :2010/05/25(火) 17:06:29
>>27 さん
すごいっす!!
めっちゃ助かりました。ありがとうございます。
30 :
複乳 :2010/05/25(火) 17:22:07
32 :
複乳 :2010/05/26(水) 14:10:58
ツールバー カスタマイズ エクセル でぐぐれ
次の表で、「見込実績」の欄に入る数字を自動化したいです。 数値が入るセルは「計画」と「実績a」〜「実績d」です。 実績の欄に何も入ってないときは「計画」の値が入ります。 ------------------------------------------------- A B C D E 3 4月 5月 6月 7月 4 計画 1,000 500 2,000 5 見直 6 見込実績 1,000 500 2,000 7 実績a 8 実績b 9 付替 10 実績c 11 実績d 実績に数値が入ると、その合計が「見込実績」に入り、 「計画」との差があれば、翌月の「見込実績」に入ります。 ------------------------------------------------- A B C D E 3 4月 5月 6月 7月 4 計画 1,000 500 2,000 5 見直 6 見込実績 600 900 2,000 7 実績a 300 8 実績b 200 9 付替 10 実績c 0 11 実績d 100 よろしくお願いします。
どうせ「見直し」に数字が入ったら「見込実績」の数字を変えるんだろ?
35 :
33 :2010/05/26(水) 22:25:13
>>34 見直しは下期になって、計画に置き換わるので、今回の質問とは関係ありません。
>33 9行目の「付替」が何を意味するかわからないけど、7行目〜11行目までの計が実績と仮定します。 B6セル =IF(COUNT(B7:B11)=0,B4,SUM(B7:B11)) C6セル =IF(COUNT(C7:C11)=0,IF(COUNT(B7:B11)=0,C4,C4+B4-B6),SUM(C7:C11)) で、右にフィルコピー 「付替」を実績に含めないのであれば、COUNT(B7:B11)→COUNT(B7:B8,B10:B11)などのように変更のこと。 ただし、当方OOoのCalcで作った(;→,の変更のみ)ので、あしからず
>>25 関数やvbaなんか使わなくても
*/ を置換で消せば一発なんだが。
38 :
33 :2010/05/26(水) 23:09:08
>>36 ありがとうございます。
B6は、=IF(AND(B7="",B8="",B10="",B11=""),B4,B7+B8+B10+B11)と
考えてみましたが、=IF(COUNT(B7:B11)=0,B4,SUM(B7:B11))の方が
シンプルでいいですね。
>33 まあおんなじだけど B6 : =IF(SUM(B7:B11)>B9,SUM(B7:B11)-B9,B4) C6 : =IF(SUM(C7:C11)>C9,SUM(C7:C11)-C9,C4+B4-B6)
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 エラーが出るのでF8で検証してます。 @もAもセレクトしてくれるのに、Bで 実行時エラー424 オブジェクトが必要です というエラーが出ます。 なにがマズーでしょうか? @ Cells(i, 12).Select A Range("A65536").End(xlUp).Offset(, 2).Select A Cells(i, 12).Copy Destination:=Range("A65536").End(xlUp).Offset(, 2)
エラーが出るのでF8で検証してます。 (1)も(2)もセレクトしてくれるのに、(3)で 実行時エラー424 オブジェクトが必要です というエラーが出ます。 なにがマズーでしょうか? (1) Cells(i, 12).Select (2) Range("A65536").End(xlUp).Offset(, 2).Select (3) Cells(i, 12).Copy Destination:=Range("A65536").End(xlUp).Offset(, 2)
43 :
複乳 :2010/05/27(木) 00:53:34
>>40 ならん。多分iが0か65537以上になっている
と思ったが違うかなー。
コードを全部教えて欲しい
>>41 新しいツールバー作ってボタン乗せてマクロの記録で記録したコード登録と思う
やった事ないけど
また明日
>>43 Cells(i, 12).Copy Destination:=Range("A65536").End(xlUp).Offset(0, 2) にしたら動きました。
なんででしょう???
ついでに・・・
Range(Cells(i, 15), Cells(i, 18)).Copy Destination:=Range("A65536").End(xlUp).Offset(0, 4) の値を
プラスマイナス反転させるにはどうすればいいでしょうか?
-(Range(Cells(i, 15), Cells(i, 18)).Copy) と書いたらコンパイルエラーになってしまいました(><)
45 :
複乳 :2010/05/27(木) 01:35:12
>>44 知らん
一旦変数に入れて*-1
もしくはcells(1,1).value=-cells(1,2).value
toka
46 :
複乳 :2010/05/27(木) 09:45:47
>>41 何でわかんねーンだよw
ttp://www1.axfc.net/uploader/Img/so/83630.jpg こんな漢字
>>44 知らんってのはoffsetの件ね
引数は0でも入れておいたほうがいいんじゃない
-(Range(Cells(i, 15), Cells(i, 18)).Copy)
に関しては、rangeはオブジェクトっていって色々な要素を持つ
Range(Cells(i, 15), Cells(i, 18))のvalue(値)なのかrow(行)なのかhidden(表示/非表示フラグ)わからない
そのどれをマイナスにするか分からないし、そもそも記述もテキトーすぎる
言いたいことは分かるんだけどな
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 A12にオンラインで株価を取得する関数が入っているのですがOLで繋がっている時は 数値が表示されますが通信を切断すると関数の文字列に変わってしまいます。 なのでその値のみをB12に自動的にコピーしたいのですがどのような関数を用いれば良いでしょうか? 宜しくお願いします。。。
値でコピーする 自動的にするためにはVBAしかない
>>46 ありがとうございました。
メニューバーに文字を打ちたいのです!
マクロですか?
やはりVBAですよね・・・ちょっと調べてみます
52 :
33 :2010/05/28(金) 00:15:59
33です。 36の例で試してたら、4月5月が0のとき6月は3,500になるべきが 2,500になってしまいます。 ------------------------------------------------- A B C D E 3 4月 5月 6月 7月 4 計画 1,000 500 2,000 5 6 見込実績 0 0 2,500 7 実績a 0 0 8 実績b 0 0 9 10 実績c 0 0 11 実績d 0 0 39の例だと、予想外の数字が・・・ ------------------------------------------------- A B C D E 3 4月 5月 6月 7月 4 計画 1,000 500 2,000 5 6 見込実績 0 1,500 1,000 1,000 -1,000 1,000 7 実績a 0 0 8 実績b 0 0 9 10 実績c 0 0 11 実績d 0 0 再度お助けを。
意味のない引き算してる 多分1000を変えたらその金額も変わる
54 :
33 :2010/05/28(金) 00:37:22
自己解決しました。
>>44 …Offset(, 2)はダメで…Offset(0, 2)なら動く
なんて事はないよ。問題は別にある。
貧乳も余計なアドバイスしない方がいい。
あと、インタプリタにコンパイルエラーは無いし
マイナスのオブジェクトも存在しない。
恐れ入りますが、お詳しい方宜しくお願いします。 日付 1日 2日 3日 4日 5日 10 10 15 20 10 15 10 20 15 20 10 10 10 10 10 日計 35 30 45 45 40(オートSUM済) 累計 35 65 110 155 195 当日の累計を出す際ですが、自動的に前日の累計に今日入力した 日計を足す操作方法を教えてください。前任者は、前日の累計を クリックして横に引っ張ったまま、今日の日計の部分をクリック すると加算された累計が出ると言うのですが、何度やっても出来 ないので、自分で計算して手入力してます。初歩的なことで、 恐縮ですが、お願いします。
59 :
38 :2010/05/29(土) 01:27:56
申しワケありません。日付の下の数字が、全部左に寄ってしまった・・・
"日付"がA1セルに入ってるとして、 累計の左から=B5, =B7+C5と入れてオートフィル・・・じゃダメなの?
>>58 「累計」が6行目だとして、
B6=SUM($B5:B5)、右にオートフィルでいかがでしょう。
>>58 累計の出し方も分からないなら見込みがないからやめた方がいいかもね。
上のセルと左のセルを足すだけだろ?
いちいち最初から合計するやつはヴァカ。
【1 OSの種類 .】 WindowsXP SP4 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】Dim hogehoge As Worksheet 【やりたいこと】 ・他のブックのシートを書き出したい。 セルA2に任意のブック「piyo.xls」のアドレス「c:\hoge\piyo.xls」を入力しておき、 ブック「piyo.xls」のシート名をセルA4以下に書き出したい。 【やってみたこと】 ↓これだと、このマクロのあるブックに含まれるシートがセルA4以下に書き出されてしまう。 Sub MCR_FindSheetName() Dim tempSheet As Worksheet Range("A4").Select For Each tempSheet In Worksheets With ActiveCell .Value = tempSheet.Name .Offset(1).Select End With Next End Sub
>>64 そりゃ、ブックを何も指定してないから・・・
サンプル
Sub MCR_FindSheetName()
Dim tempSheet As Worksheet
Dim r As Range
Set r = ActiveSheet.Range("A4")
Workbooks.Open (Range("a2").Value)
For Each tempSheet In Worksheets
With r
.Value = tempSheet.Name
Set r = .Offset(1)
End With
Next
End Sub
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 フーリエ級数+Excel,マクロなど:似たことをしようとしているページは見つけましたがよくわからずです 【やりたいこと】 フーリエ級数の計算をExcelにやらせたいと考えています。具体的には元の関数f(x)に対して成り立つフーリエ級数 f(x)=a0/2 + Σ[k=1→∞](ak*coskx + bk*sinkx) を計算させるというものです。 ただフーリエ係数のうちa0を含めakは0であることが既知ですので、f(x)=Σ[k=1→∞](bk*sinkx)のみの計算をしようとしています。 現在 ・B1から下(B列)にはθ[rad]、-π〜πを360個のセルで ・C1から下(C列)にはk (ex) C1セルには1、C2セルには2・・・ ・O1から下(O列)にはbk (ex) O1セルにはb1、O2セルにはb2・・・ が計算済みとなっています。ここでQ列からフーリエ級数の計算をさせようと考え、 Σ(bk × sinkθ) ですから Q1セルに =$O$1*SIN($C$1*B1) → 下向きにオートフィル と入力しました。これでb1*sin(1*θ)のみのΣになりますよね?続いてR列には第二次までにしようと考え、 R1セルに =$O$1*SIN($C$1*B1)+$O$2*SIN($C$2*B1) → 下向きにオートフィル と入力しました。これでb1*sin(1*θ)+b2*sin(2*θ)になりますよね? これをS,T,U・・・と高調波を増やしながら演算させていきたいのですが、このように「計算項をどんどん増やしていく」という作業が当方わかりません。 理想としては kを指定するセルがあって、ここに100などと入力すると100次高調波までΣされたものが△1セルに出力される、なんてことをしてみたいのですが、関数では実現不可能なのでしょうか? マクロを使っても構いません。当方マクロの知識がなく、途方に暮れております。 何か質問があれば迅速な回答を心がけますので、よろしくお願いいたします。
複合参照を使う。それまでの計算結果を使う。 たとえば、1行目のB〜J列に1〜9。A列2〜10行目に1〜9を入れて B2に =$A2*B$1 として下と右にオートフィルすれば九九の表ができます。 B列はそのままでC2に =B2+$A2 として下と右にオートフィルしてもできます。 2行目はそのままでB3に =B2+B$1 として下と右にオートフィルしてもできます。
68 :
64 :2010/05/29(土) 23:01:31
>>65 氏
Set r = ActiveSheet.Range("A4")
Workbooks.Open (Range("a2").Value)
ここの箇所が思いつかなかった。THXです。
文字の下の下線なのですが 担当者___________________ってやりたい場合(担当者の下にも下線があります)スペースを入れると一時的に下線が引かれるのですが 他のセルをクリックすると消えてしまうのですがこのようなやり方は邪道なのでしょうか
70 :
66 :2010/05/30(日) 00:16:10
>>67 さん
ありがとうございました。$1個っていう使い方が・・・。
無知で申し訳なかったです。
>>68 ブックを指定しないのは気持ち悪いね。
エラー処理なしだと
Sub MCR_FindSheetName()
Dim tempSheet As Worksheet
Dim r As Range
Dim wb As Workbook
Set r = Range("A4")
Set wb = Workbooks.Open (Range("a2").Value)
For Each tempSheet In wb.Worksheets
r.Value = tempSheet.Name
Set r = r.Offset(1)
Next
End Sub
>>69 当方の2002では他のセル選択しても消えないけど。
73 :
名無しさん@そうだ選挙にいこう :2010/05/30(日) 12:16:39
VBAでセル内容を数式にしたいとき cells(1,1).value="=sum(b2:b10)" cells(1,1).formula="=sum(b2:b10)" cells(1,1)="=sum(b2:b10)" のどれも同じですよね? なにか違いはあるのですか? 気になって夜も眠れません
74 :
名無しさん@そうだ選挙にいこう :2010/05/30(日) 12:21:46
あと cells(1,1).FormulaR2D2="=sum(b2:b10)" みたいなのもあるらしいが、区別すべきですか?
>>73 cells(1,1).value="=sum(b2:b10)"
の省略形が
cells(1,1)="=sum(b2:b10)"
なので、このふたつは全く同じ。
formula は知らん。
76 :
73 :2010/05/30(日) 12:48:08
>>75 どうもです
どなたかformulaのこと知りませんか?
77 :
名無しさん@そうだ選挙にいこう :2010/05/30(日) 15:53:19
【1 OSの種類 .】 Windows xp home edition 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 IF関数 論理式 数式 -------------------------------------------------------------- エクセルの練習のために家計簿を作っており、以下のようなシートを作っています。 A B C 4 2010/6/1 =A4 =IF(A4="日","休日",IF(A4="土","休日",IF(A4="金","休前日","平日"))) 5 2010/6/2 =A5 =IF(A5="日","休日",IF(A5="土","休日",IF(A5="金","休前日","平日"))) 6 2010/6/3 =A6 =IF(A6="日","休日",IF(A6="土","休日",IF(A6="金","休前日","平日"))) 7 2010/6/4 =A7 =IF(A7="日","休日",IF(A7="土","休日",IF(A7="金","休前日","平日"))) --------------------------------------------------------------------------- B列はユーザー定義で「aaa」にしており、自動的にA列の曜日が出るようになっています。 B列に「月」、「火」、「水」、「木」と表示されるときは、C列に「平日」を、 B列に「金」と表示されるときは、C列に「休前日」を、 B列に「土」、「日」と表示されるときは、C列に「休日」を表示するため、 C列に「=IF(A4="日","休日",IF(A4="土","休日",IF(A4="金","休前日","平日")))」を入力しましたが、 全て表示が「平日」になってしまいます。 どうすれば「平日」、「休前日」、「休日」を表示されるか教えてください。
>>77 A列もB列もシリアル値が入っているからね・・・
=IF(TEXT(A1,"aaa")="日","休日",IF(TEXT(A1,"aaa")="土","休日",IF(TEXT(A1,"aaa")="金","休前日","平日")))
でもweekday関数を使って
=IF(WEEKDAY(A1,2)>=6,"休日",IF(WEEKDAY(A1,2)=5,"休前日","平日"))
79 :
名無しさん@そうだ選挙にいこう :2010/05/30(日) 17:12:10
どうもありがとうございます。 シリアル値という概念をはじめて知りました。
>>73 Value は値を設定するプロパティ
Formula はA1形式の数式を設定するプロパティ
FormulaR2D2 では無く FormulaR1C1 はR1C1形式の数式を設定するプロパティ
そんで、Excelはプロパティを省略しても、ある程度区別してそれぞれのプロパティに
設定してくれるから違いが解りずらいけど
きちんと区別した方がいい
詳しくはヘルプをみた方が早い
凄く初歩的な質問ですみませんが、 B列に1から順番にint型の数字を追加する際に、 C列に「B列に0.9かけた値を表示する」という数式を作りたいと思っています。 ただ、B列に追加されるデータ数が未知であり、時が立つとどんどん追加されます。 この時、C列に上記の数式を実現するには、どのセルにどのような数式を足せばいいでしょうか? excel2000を使ってます
>>81 うん?よく分からない
=IF(B1="","",B1*0.9)
下にコピー ってことじゃないよね?
>>82 説明が下手ですみません。
式自体はそうなるかもしれませんが、B列に追加されるデータ数がどんどん増える可変長なのです。
B1〜BXまで、どんどんデータが追加されるとき、いちいちC列に
>>82 式をコピーしなくても、
自動的に、例えばB32にデータが入力されたらC32にB32*0.9の値が出力されるようにしたいのです
77氏ではないですが・・・ 77の例で、B列を条件(1) [セルの値が] [次の値に等しい] [="土"] にして 書式のフォント色を青にしましたが色が変わりません。 設定ミスでしょうか?
>>84 だから・・ww
シリアル値が入っているからね・・・・
数式で
=TEXT(A1,"aaa")="土" とかにしてくれ
>>83 最初から
>>82 の式をあらかじめコピーしておいたらいいじゃん(´・ω・`)
B列に何も入力していなかったら、見た目はブランクだよ
>>86 アドバイスありがとうございます。
私も最初はそのように考えたのですが、データの数が100や200を超える予定であり、
かつ何個になるのか分からないので、どのようにすべきか悩んでおります…
>87 B65535まで式を入れておけば悩むことはない
>>85 d
>>83 VBAのワークシートチェンジを使う
分からないor勉強する気がないなら冗談でも何でも無く
>>86 >>88 しかない
まぁC列には色つけてからオートフィルタでもすれば式の入れ忘れはそうそうないだろう
後は0.9かけてなにがしたいかによる
例えば合計なら=sum(b:b)*0.9でいいし平均なら=sum(b:b)*0.9/count(b:b)だ
91 :
名無しさん@そうだ選挙にいこう :2010/05/30(日) 21:42:47
VBAでステートメントの辞書的な本で 初心者から中級者向けの本のおすすめを教えていただけませんか?
>>90 ありがとうございます。
やりたいことは、0.9かけて小数点以下を切った値を和算したいのです。
全体を足してから0.9かけると別の値になってしまうため、上記の方法を考えています
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 たぶん 【4 VBAでの回答の可否】 可 If Cells(i, 4).Value - Cells(i, 12).Value = 0 Then で分岐したら 条件に合わない例が出てきたので、値をみたら-0.00000になってました。 見た目は小数点5ケタの数値で0なのに、なんでこうなってしまうのでしょうか?
94 :
複乳 :2010/05/30(日) 23:24:52
>>91 大抵の人は一冊テキトーに買って後は検索ってパターンが多いと思う
俺はかったことが無いけど
MSDN等を調べるか、やりたい事をぐぐったほうが早いと思う
ちなみにプログラム板にVBA専用のスレがある
>>92 配列数式かな
=SUM(INT(B1:B60000))
でCtrl+shift+enterで決定。配列数式の意味は検索して
>>93 多分それ、もっと少ない数じゃないか?-0.000000001とか
小数誤差とおもう。適当なところで切り捨てして比較した方が良いよ
If int(Cells(i, 4).Value*1000) - int(Cells(i, 12).Value*1000) = 0 Then
みたいな感じで
小数誤差の説明は長くなるのでぐぐってくれ
>>94 ありがとうございます。配列数式をググってみて、一応理解したつもりなのですが、
配列数式では配列内の各値を0.9倍して端数を切り捨てしたものを合計する、とは出来るのでしょうか?
配列数式をB1:B60000までというのもすごい発想。
>>95 できるけど、重くなるから。正直、良い方法とは思えない
>>96 B1:B60000じゃないだろ?
1個だと思うなぁ。
98 :
名無しさん@そうだ選挙にいこう :2010/05/31(月) 08:33:46
Windows7 32bit Excel2007を使用。 特定のキーを押せば、特定の文字を打ち込んだり、文字や背景の色を変えることって出来ますか? 例えば、F1を押せば「おはようございます」 F2を押せば「こんにちわ」 F3なら「こんばんわ」 F4を押せば背景が赤く F5なら背景が青く F6なら背景が緑 F7を押せば文字が赤く F8を押せば文字が青く といった感じにです。
>>95 配列で60000まで指定するよりは
=SUMPRODUCT(INT(OFFSET(B1,0,0,COUNTA(B:B),1)*0.9))
とかの方がいいと思うけれど、offsetも重くなるかな。それとこの式の意味が分からないと間違いの元だしね
101 :
複乳 :2010/05/31(月) 10:07:41
>>95 それが配列数式の{=SUM(INT(B1:B60000))}だよ。
ちなみにどこでもいいから一箇所に入れるだけでいい
>>96 そうはいうがvba無しで逐一作業列を作らずに合計を出すには配列数式使わずに
どうすればいいの、と思ったら
>>99 があったか
offsetは揮発性だけど重さ的には似たようなもんじゃないか。
最高でも60000個少々の足し算だ
>>101 SUMPRODUCTも実質的には配列数式だよ。
重さもこのケースでは配列数式と全く変わらないし。
SUMPRODUCTがほんのちょびっと軽くなるのは右辺をカンマで区切った場合だけ。
重さ軽さはどうでも無駄を嫌うのであればINDEXを使うべきだよ。
=SUMPRODUCT(INT(B1:INDEX(B:B,COUNTA(B:B))*0.9))
=SUM(INT(B1:INDEX(B:B,COUNTA(B:B))*0.9))の配列数式。
どっちでもいい。
揮発性じゃないがブックを開いた時にも再計算する。
ブックオープン時以外ではもちろんB列を変更した時だけ再計算。
OFFSETはどこのセルいじくっても再計算だから無駄。
無駄の消費に喜びを感じてる人はどうぞ。
>>102 の方法がスマートだね。ただ、原点に帰ると、作業列を使った方がいいよ
無理に配列を使わなくても、作業列があった方が後からわかりやすいし
>>103 102だが原点に帰ればまったくそのとおり。
A列の1個のセルを変更した場合、作業列なら0.9倍するのはその右の1個の計算式だけ。
配列数式なら全データを0.9倍する。
合計するコストは同じだが、0.9倍するコストは作業列が少ない。
105 :
名無しさん@そうだ選挙にいこう :2010/05/31(月) 20:09:36
質問です。 excelで普通の棒グラフを作成する場合、通常ですと下記のようになりますが (均等に棒線が描かれる) 200 ■ ■ ■ ■ 150 ■ ■ ■ ■ 100 ■ ■ ■ ■ A B C D このようにしたい場合はどうすれば良いですか? (ABは同じ比較対象で、CDは同じ比較対象。だがAとCは離したい) 200 ■ ■ ■ ■ 150 ■ ■ ■ ■ 100 ■ ■ ■ ■ A B C D
>105 A,B,E,C,D の5個のデータを用意してEには値0を設定する方法じゃダメですか?
普通にBとCを離せばいいんじゃね?
データ0にして標題空白
109 :
名無しさん@そうだ選挙にいこう :2010/05/31(月) 21:04:25
>>106 ありがとうございます。それでやってみます。
AとB、CとDのグラフをぴったり横にくっつけるのは可能でしょうか?
110 :
106 :2010/05/31(月) 21:16:41
>109 グラフの棒の間隔はグラフ描画サイズと項目数に依存ので、いろいろ調整してみてください 場合によっては、値0の項目が1個じゃなくて複数必要になるかも
111 :
58 :2010/05/31(月) 22:09:35
>>60 61 62 63様へ
レスどうもありがとうございました。おかげ様で解決致しました。
本当に感謝しております。
2007のファイルを2003で変換して開く時に、なぜか読み取り専用で開かれ、ファイル名が「XL000000001」になってしまった。 拡張子はxlsx、xlsmの2つを試したけど、とにかく数字が増えていく。 今までこんな現象を見たことがないんだけど、どういうことでしょう???
>>91 ちょっと古いけど、
ExelVBAハンドブック
西沢夢路
オススメ!
このような表があって、特定の行のG〜L列の値をA列の最下行へコピペし、 D〜Fまでの数値だけ符号を反転させるマクロの書き方についてです。 A B C D E F G H I J K L M N 10 AAA ああ 1 0.11 0.22 0.33 0.44 EEE うう 2 0.44 0.55 0.66 0.77 11 BBB いい 1 0.12 0.23 0.34 0.45 FFF ええ 1 0.45 0.56 0.67 0.78 12 13 例えば、行 = 10 のときは、こんな感じに。 A B C D E F G H I J K L M N 10 AAA ああ 1 0.11 0.22 0.33 0.44 EEE うう 2 0.44 0.55 0.66 0.77 11 BBB いい 1 0.12 0.23 0.34 0.45 FFF ええ 1 0.45 0.56 0.67 0.78 12 EEE うう 2 -0.44 -0.55 -0.66 -0.77 13 で、書いたのがこれです。もうちょっとスマートな書き方があれば教えてくだちい。 Range(Cells(行, 8), Cells(行, 10)).Copy Destination:=Range("A65536").End(xlUp).Offset(1, 0) Range("A65536").End(xlUp).Offset(0, 3).Value = Cells(行, 11).Value * -1 Range("A65536").End(xlUp).Offset(0, 4).Value = Cells(行, 12).Value * -1 Range("A65536").End(xlUp).Offset(0, 5).Value = Cells(行, 13).Value * -1 Range("A65536").End(xlUp).Offset(0, 6).Value = Cells(行, 14).Value * -1
エクセル2003で行を削減すると最終行に罫線が勝手にコピーされてしまい、行の挿入ができなくなってしまいます。 これを防止するにはどうすればいいでしょうか?
117 :
複乳 :2010/06/02(水) 08:00:01
>>115 その行程度ならそれでもいいと思うけど
Sub fukunyu()
Dim 行, saigo, i
行 = 10
'最終行は変数に入れる
saigo = Range("A65536").End(xlUp).Row + 1
'最初に全部コピーしてから
Range(Cells(saigo, 1), Cells(saigo, 6)).Value = Range(Cells(行, 8), Cells(行, 14)).Value
'マイナスに
For i = 4 To 7
Cells(saigo, i) = -Cells(saigo, i)
Next
End Sub
>>116 質問の意味がよく分からない
削減じゃなくて削除と思うけど罫線がコピーされることはない
最初から入ってるんじゃないの
118 :
名無しさん@そうだ選挙にいこう :2010/06/02(水) 16:00:47
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 EXCEL 特定文字 乱数 1 3 4 5の4つの数字を使い4桁の数字を作りたいと思っています 1111 1113 1114 1115 1131 1133 1134 1135 と言う風にする関数等は用意されていない物でしょうか?
>118 for〜nextの4重ループと、ループ変数の値(1,2,3,4)を(1,3,4,5)に置き換える処理で簡単にできますよ。 ちょっと待ってて
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可、できるだけ無い方が助かります
【5 検索キーワード 】 複数条件、SUMIF、IF、SUM
ttp://www.dotup.org/uploda/www.dotup.org932535.bmp 上記の画像のような状態で、
受験者の回答と正解を比較して、真なら配点を追加、偽なら0を追加という風な作業を問題数の数だけ行い、
最終的に合計点を求めて出力したいのですが、何かいい方法はないでしょうか?
色々調べてみたのですがExcelに慣れておらずまったくできませんでした。
よければアドバイスください。
121 :
名無しさん@そうだ選挙にいこう :2010/06/02(水) 16:22:20
>>119 そうか!置き換えればいいのか
2を5にすればいいんですな
122 :
119 :2010/06/02(水) 16:42:29
作ってみた Option Explicit Dim h As Integer, i As Integer, j As Integer, k As Integer Dim suretsu As Variant, tate As Integer Sub ex118() suretsu = Array(1, 3, 4, 5) tate = 1 For h = 0 To 3 For i = 0 To 3 For j = 0 To 3 For k = 0 To 3 Cells(tate, 1).Value = _ 1000 * suretsu(h) + 100 * suretsu(i) + 10 * suretsu(j) + suretsu(k) tate = tate + 1 Next k Next j Next i Next h MsgBox ((tate - 1) & "件のデータを書き込みました") End Sub
>120 途中まで作ってみた。要領がわかったら続きはご自分でどうぞ。 もっとスマートな方法もあると思うので、詳しい方よろしく。配列数式がどうのこうのという方法です。 受験番号1の人の問題番号1〜3についての得点の計算方法です。 =(C8=$C$3)*$C$4+(D8=$D$3)*$D$4+(E8=$E$3)*$E$4 (C8=$C$3)の部分は論理式と言って、真か偽ですが、掛け算の片方のときは1か0になります。 回答が正解と一致していれば$C$4の値を×1したもの($C$4の値そのまま)になります。 不正解なら0になります。これを10個つなげればいいわけです。 問題番号7、8の部分も完全一致したときだけ得点になります。片方だけ一致で5点とかの条件が付く 場合には計算式だけでは無理かと思います。
124 :
名無しさん@そうだ選挙にいこう :2010/06/02(水) 19:31:33
test
お、アク禁解除されてた。 testカキコ失礼しました。 >118 8桁の2進数に直して、2桁づつ 00→1 01→3 10→4 11→5 に置き換える というのは?
126 :
123 :2010/06/02(水) 20:05:21
>120 もっとスマートな方法です。 =SUMPRODUCT((C8:L8=$C$3:$L$3)*$C$4:$L$4) C8:L8 とか $C$3:$L$3 などのセル範囲を使って論理式や計算を表すのが配列数式です。
127 :
115 :2010/06/02(水) 23:22:36
>>117 簡略して書いたので、実際にはもっと長いです。
-Cells(saigo, i)って略せるんですね(@_@
セルにコメントを書くマクロですが、【あ】のところが Cells(i, 4).AddComment Text:="" & OLD_QTYだと動くのに、 Cells(i, 4).AddComment Text:=OLD_QTYだと止まってしまいます。 これは何故でしょうか? OLD_QTY = Cells(i, 4).Value '数字 If Not Cells(i, 4).Comment Is Nothing Then Cells(i, 4).ClearComments End If 【あ】
お願いいたします。 エクセルで受注表を作成しているのですが、途中データコピーなどで いろいろなブックからシートコピーをしました。 で、作成し終わってコピーしてきたシートを削除したのですが その後、立ち上げるたびに「リンク更新 はいorいいえ」を聞いてきます。 現在リンクを必要としない状態にしましたのでメッセージが出ないようにしたいのですが どのようにしたらいいのでしょうか? 編集→リンクの設定でみると確かにリンク先が記録されているのですが、 間違いなく現在利用していません。 ツール→オプションにてメッセージが出ないようにしてみましたが、開くかキャンセルするか のウインドーがいちいち立ち上がるので、このやり方では無かったです。 どなたかよろしくお願いいたします。
Application.AskToUpdateLinks = False
>>129 いらないなら、リンクを削除すれば?値だけが残るよ
>>128 鳴らない
マクロ書くときはsub〜endsubで書いて
>>129 リンクされている
[ を検索、無ければ新しいシートに必要なところだけコピー
ありがとうございます。
全シート数式表示にしてチェックしたのですが、リンクされている
セルが見つからず、削除できません。
どうやって検索するのですか?
>>130 私への回答ですか?どうするのかよく分かりません。
すいません
134 :
複乳 :2010/06/03(木) 09:18:38
135 :
名無しさん@そうだ選挙にいこう :2010/06/03(木) 09:34:12
>>134 早い回答ありがとうございます
会社に着いたらやってみます
A列に動物の名前がランダムで入っているとして、 キリンは2個あるから背景を青、カバとクジャクは3個あるから背景を緑みたいに 列に存在する個数ごとに色分けすることは出来ますか?
>136 A列選択、条件付き書式で 数式が =COUNTIF(A:A,A1)=2 で書式→パターンを青に 条件を追加して =3 の時、緑に設定
>118 そういう関数はないから下のFunctionを標準モジュールに 置いてから、=dec2quat(int(rand()*256)) とか記述汁。 Function dec2quat(arg As Integer) As String Dim n(4) If arg < 0 Or arg > 255 Then dec2quat = "Error" Else For i = 0 To 3 n(i) = arg Mod 4 If n(i) > 0 Then n(i) = n(i) + 2 Else n(i) = 1 dec2quat = n(i) & dec2quat arg = arg \ 4 Next End If End Function
139 :
136 :2010/06/03(木) 16:04:51
140 :
名無しさん@そうだ選挙にいこう :2010/06/03(木) 20:20:50
Sub 鳴らないと答えた132() i = 3 OLD_QTY = Cells(i, 4).Value '数字 Cells(i, 4).Value = Range("A1").Value If Not Cells(i, 4).Comment Is Nothing Then Cells(i, 4).ClearComments End If Cells(i, 4).AddComment Text:=OLD_QTY Cells(i, 4).AddComment Text:="" & OLD_QTY End Sub
141 :
名無しさん@そうだ選挙にいこう :2010/06/03(木) 21:23:33
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 データ 抽出 以下のように、メンバー全員分の最高得点だけを抽出したいです A B 1 伊藤 60 2 田村 78 3 東山 90 4 田村 82 5 伊藤 88 6 東山 80 A B 1 伊藤 88 2 田村 82 3 東山 90 超初心者ですみませんが、よろしくお願いします。
抽出は、関数でできなくもないけれど、マクロより難しくなる。 メンバー抽出だけはマクロの記録とかでやってみれば?
>>141 人数が多い場合は関数でやってはいけない。
特に配列数式はヴァカ。
考え方としては名前を最優先するキー、次に優先するキーに点数を降順にソートして
名前が上と違うものを抽出。
ピボットテーブルで集計方法を最大値にすればこの考え方でやっていることになる。
144 :
名無しさん@そうだ選挙にいこう :2010/06/03(木) 22:49:26
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 【5 検索キーワード 】 田中の数がひとつ増えたら、佐藤の数がひとつ減る 田中の数がひとつ減ったら、佐藤の数がひとつ増える ようするに 田中,と佐藤の合計がいつも同じになるようにしたいんですけど できますか? 田中 佐藤 12 10 田中マイナス3 ↓ 田中 佐藤 9 13
>>144 入力するセルと表示するセルが同じセルならVBAじゃなければ無理。
VBAが使えなければ諦めることだな。
146 :
144 :2010/06/03(木) 23:28:50
>>145 ありがと
VBAというものを勉強してきます。
なんか会社で使ってるExcelファイル、 ワークシートのタブがみえなくなったんですけど・・・ どうやったらなおりますか??
>>134 会社でファイルを開くとエラーメッセージが出ないのは会社PCには、そのリンク先ブックが
あるからで、USBメモリに保存して家PCで開こうとするとリンク更新はい、いいえが出るのは
リンク先ブックがないから、ということでOKですか?
で、家PCがExcel2000なので、シート毎しか検索できず、教えていただいたリンク先検索を
35シート全てでやってみましたが「見つかりませんでした。
こうなると、どれか分からないので全シートコピーして新しいシートにしなければメッセージが
出続けるのでしょうか?
できれば、行列幅も変わってしまうのでなんとか避けたいのですが・・・
行列幅も丸々そのままコピーできる方法はありますか?また、そんな丸々コピーでは
またリンクも引き継がれませんか?
ちなみに、会社PCで「編集」→「リンクの設定」をしてみるとリンク先が無いという感じで、 「リンクの設定」自体が色が薄くクリックできません が、しかし家PCだとリンク先ブックが5つほど表示されます。
>>147 ツール⇒オプション⇒表示シートで、
シート見出しにチェックを入れる
>>150 さん
なるほど、ありがとうございます。
でもわざわざこの操作でチェック外すようなことしないんだけど、
他の操作でも非表示になることがあるのかしらん。
>>151 オプションはうつることがあるから。
他の非表示のを開いてうつったのかもしれない。
あと、有名どころでは、自動計算のオプションは「ある操作」でチェックが外れたりするね
153 :
複乳 :2010/06/04(金) 09:19:29
154 :
名無しさん@そうだ選挙にいこう :2010/06/04(金) 09:33:41
>>153 すごくわかりやすくコピー&チェック教えていただき助かります
これならできそうです
155 :
名無しさん@そうだ選挙にいこう :2010/06/04(金) 22:51:58
Excelで逆ポーランドって使えるんですか
>152 >自動計算のオプションは「ある操作」でチェックが外れたりする もったいぶらなくても「複数シート選択:作業グループ」のことでしょ?
>>132 Sub test()
i = 3
OLD_QTY = Cells(i, 4).Value '数字
Cells(i, 4).Value = Range("A1").Value
If Not Cells(i, 4).Comment Is Nothing Then
Cells(i, 4).ClearComments
End If
Cells(i, 4).AddComment Text:=OLD_QTY
'Cells(i, 4).AddComment Text:="" & OLD_QTY
End Sub
実行時エラー1004って出るよ。
お前も試してみたらどうだ?
158 :
複乳 :2010/06/05(土) 01:47:47
>>157 Sub test()
Dim OLD_QTY As String
i = 3
と文字列として定義すればエラーで無いね
D_Q
>>158 OLD_QTY って変数名から推測すると、
Dim OLD_QTY As Long(またはSingle)じゃね?
Cells(i, 4).AddComment Text:=CStr(OLD_QTY)
161 :
名無しさん@そうだ選挙にいこう :2010/06/05(土) 21:14:09
検索でコピペが使えないのが不便。だれかコピペが使えるようにするアドオン作って。
1 10 3 33 5 a e あ ゑ 乳 ■ ↑を並べ替えると↓になります。 1 3 5 10 33 ■ a e あ 乳 ゑ "■"は2バイト文字なのに、なんで"a"より上になるの? "ゑ"はひらがななのに、なんで"乳"より下になるの?
乳が上に来てるのはふりがなを使ってるからだな
はぁ?
(;´Д`)ハァハァ
ふぅ・・・
168 :
名無しさん@そうだ選挙にいこう :2010/06/06(日) 14:21:53
>>168 関数はない。まあ、馬鹿みたいにマニアっぽくすれば出来ないことはないけど。
抽出は関数の不得意技。
vba覚えた方が早いくらい。フィルターで抽出してコピペをしてそれをマクロの記録にとっておくとか。
170 :
168 :2010/06/06(日) 14:42:29
やっぱりフィルターしてコピペしかないですか? 今、IFの周辺の関数を習いはじめたところで、 条件にあった項目を抽出して一度に表示できたら便利だろうな って思ったのですが・・・
>>170 この手のはAccess使っちまうからようわからんが
ピボットが得意そうな分野じゃね?
例えばA1に抽出条件(会員番号)があったとして該当の日付を上から抽出しようとすると =IF(COUNTIF(C:C,$A$1)>=ROW(A1),INDEX(B:B,SMALL(IF(($C$3:$C$100)=$A$1,ROW($C$3:$C$100),10^10),ROW(A1)),0),"") CTRL+SHIFT+ENTER の同時押しで配列数式に 下にコピー。 もうちょっとスマートにはできると思うし、作業列を設ければもう少し楽にはできるとは思うけど
>>172 青い方の線を選択してクリアしたらどう?
175 :
163 :2010/06/06(日) 20:26:08
163ですが、マジレスきぼんです!
176 :
複乳 :2010/06/06(日) 20:52:28
>>175 エクセルの並び替えは数字アルファベット日本語(フリガナ)順
記号は数字とアルファベットの間になるんじゃないの。試せば
>>175 マジレスですが、デフォではExcelはふりがな優先で並べかえられます。
だから、どんなふりがなが入っているかによって、並べ替えの順番は変わる。
ゑ 乳 に関しては当方の環境では並び替えても ゑ 乳 の順番で並んでいます(ふりがなが何も入っていない)
■に関しては不思議だね。まあ、並び替えについては「ー」なんかは変な特性もあるからね・・・
178 :
163 :2010/06/06(日) 21:50:03
>>176-177 ふりがなって、B列には何も入ってないんですけど・・・
IMEの単語/用例登録もしていません。
179 :
163 :2010/06/06(日) 21:53:50
ついでに質問 数字、アルファベット、漢字が混在した列を並び替えたとき昇順で一番下になる文字は何?
180 :
名無しさん@そうだ選挙にいこう :2010/06/06(日) 22:04:08
【1 OSの種類 .】 Windows Vista 【2 Excelのバージョン 】 Excel07 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】vlookup 部分一致 表1と表2があるとします。 項目C(項目AとBのセル結合)を検索キーにし、 表2から「完全に一致しているもの」「部分的に一致しているもの」を項目Dに表示させるとします。 完全一致している場合は"○"で表示、部分的に一致している場合は"110B"というように検索キーと共通しているところがあれば表示させます。 完全一致の場合はvlookupとif関数でやれそうなのですが、 部分一致の場合、いいアイデアが浮かんできません… 稚拙な説明でわかりにくいと思いますが、よろしくお願いいたします。 (表1:項目Dは最終的に関数を使い、下記のように表示させたい) 項目A 項目B 項目C 項目D 110 A 110A 110B 111 A 111A ○ 112 A 112A 112B 113 A 113A 113D 114 A 114A #N/A (表2) 111A 110B 116A 112B 113D
>>180 表1がA1〜あるとして、表2がF列にあるとして、
=IF(COUNTIF(F:F,C4),"○",IF(MATCH(A4&"?",F:F,0),INDEX(F:F,MATCH(A4&"?",F:F,0),0)))
部分一致っていうのは、項目Aの部分が入っているという認識ですが、あってる?
182 :
名無しさん@そうだ選挙にいこう :2010/06/06(日) 22:15:42
【1 OSの種類 .】 Windows vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 使えません 【4 VBAでの回答の可否】 できれば避けていただきたいですが、VBAでしかできないということでしたらお願いします。 【5 検索キーワード 】 フィルタオプション 文字列 抽出 検索 COUNTIF OR FIND SEARCH等 以下のような表が約50000行あり、そこから複数の特定の文字列を含むデータを抽出し、別シートにまとめなければなりません。 A B C列以降略 04ps-v01シーケンサ 3040 05ps-v01ボックス* 5230 05pr-v01シーケンサ 5120 05ps-v02シーケンサ 6840 05ps-v02シーケンサ 5990 05ps-r02ボックス 6300 05ps-v03シーケンサ 10290 21ps-v02ボックス 760 21vv-r11ルート 850 21vv-r12ルート 1050 ★21vs-r11ルート** 340 例えばA列に対し、 「"v02"または"r11"を含む」…条件1 かつ「"ps"または"vv"を含む」…条件2 かつ「"05"または"21"を含む」…条件3 かつ「"21"と"ps"と"ボックス"を同時に含むものを除く」…条件4 という条件で検索をかけなければいけない状況です。 (実際は、一つの条件に含まれる項目数は10個前後で、「AまたはBまたはC…またはJを含む」といった具合に長くなります) 条件1が検索できればあとは条件4以外繰り返しでなんとかなると思うのですが、最初からつまづいてしまいました。 (続きます)
通常のフィルタでは条件を3項目以上に増やせないからフィルタオプションの設定をせよということなので 空欄のセルの下に検索条件の式を書き、2セル合わせて検索条件範囲に指定しました。 先ほどまで条件式を思考錯誤しながら編集していたところです。 今のところ試したのは以下のような式です。 =OR(A2="*v02*",A2="*r11*") =OR(A2=*"v02"*,A2=*"r11"*) =OR(FIND("v02",商品名),FIND("r11",商品名)) =OR(COUNTIF(商品名,"v02")>0,COUNTIF(商品名,"r11")>0) 文字列が認識されなかったり、ANDで検索したのと同じ結果が出てしまったり、 結果が1行も出てこなかったり、といった具合で全くうまくいきませんでした。 もしよろしかったらどなたかご教示のほどよろしくお願い致します。 長文失礼致しました。
185 :
複乳 :2010/06/06(日) 23:49:15
>>178 漢字を入力した時点でふりがな登録はされている。コピーしたらない場合もある
>>179 全部の漢字入力して並び替えればわかるよ
186 :
複乳 :2010/06/06(日) 23:53:10
>>183 自分でもどうかとおもうようなものだが・・一応機能するので
A1に上の表の04ps-v01シーケンサ が入ってるとする
以下C1-F1はそれぞれ条件1-4を表す。
C1=IF(OR(NOT(ISERROR(FIND("v02",$A1))),NOT(ISERROR(FIND("v02",$A1)))),1,"")
D1=IF(OR(NOT(ISERROR(FIND("ps",$A1))),NOT(ISERROR(FIND("vv",$A1)))),1,"")
E1=IF(OR(NOT(ISERROR(FIND("05",$A1))),NOT(ISERROR(FIND("21",$A1)))),1,"")
F1=IF(AND(NOT(ISERROR(FIND("21",$A1))),NOT(ISERROR(FIND("ps",$A1))),NOT(ISERROR(FIND("ボックス",$A1)))),-100000,"")
J1=IF(SUM(C1:I1)>0,$A1,"")
それぞれ下にオートフィルすれば条件に当てはまるものだけが出てくると思う
一応説明する。C1の NOT(ISERROR(FIND("v02",$A1))) これ
FIND関数は見つかれば文字列、見つからなければエラー値を返す。FALSEじゃないことに要注意な。エラー値はTRUEでもFALSEでも無い
ISERROR関数はエラーかどうかの判定。エラーならTRUEを返す。つまりTRUEなら"v02"が見つかっていない
NOT関数はTRUEとFALSEを逆転させる。つまりTRUEなら"v02"が見つかっている(逆のままでもいいんだが俺がわかりにくいというだけで使っている)
つまりv02があればTRUEが返り、無いならFALSE。後はORでくくってIF判定に持ち込んでいる
で、IFで判定してTRUEなら1を返し、条件4のように除外するバア愛は-100000だ(本当は全体に0をかけるべきなんだがめんどくさかった)
まーテキトーに変えれば使えるだろう
今気づいたけど条件1-3ってまとめれるな。まとめれるとこはまとめたほうがいいぞ・・
「"v02"または"r11"または"ps"または"vv"または"05"または"21"を含む」…条件1
だな。まぁ、ええけど
187 :
名無しさん@そうだ選挙にいこう :2010/06/07(月) 00:00:37
はじめまして。下記の方法が可能かどうか教えてください。 例えばフォルダ内にエクセルシートを作成すると、おなじみのエクセルのアイコンが表示されますよね。 このアイコンをそれぞれ特定の画像表示に変更することは可能でしょうか? といいますのも、読書をし終わった後に要点をエクセルでまとめており、 その書籍の表紙を個々に画像で表示できれば視覚的に探しやすくなると思いました。 PCにはあまり詳しくないため、とんでもない事を言ってるのかもしれませんが、 この方法が可能かどうか教えていただきたく思います。 よろしくお願いします。
188 :
名無しさん@そうだ選挙にいこう :2010/06/07(月) 00:03:47
すみません。187の質問ですがテンプレート忘れました。 【1 OSの種類 .】 Windows Xp sp3 【2 Excelのバージョン 】 Excel 07 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 がんばります 【5 検索キーワード 】
189 :
複乳 :2010/06/07(月) 00:16:34
>>187-188 個別には無理だったと思う
ショートカット、フォルダなら可能なのでそれをうまく使うしか無いかな
やるならKH IconMagic98ってソフトを使えばいい
アイコン 変更 でぐぐれば情報は色々見つかるわ
190 :
172 :2010/06/07(月) 00:22:24
>>174 すいません。X軸は0から始めたいので不可です。
これは人に教えるので、出来るだけ簡単な方法を探しています。
【1 OSの種類 .】 WindowsXP SP3 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 セル内 数 足す A1セルに書かれた「abc[5], defg[3], hi[2], jklmn[10]」 のようなカンマで区切られた複数種類の文字列の中の [ ]で囲われた数字の和を、A2セルに「20」というように 書き出す方法はありますか? ありましたらどうかお教えください。よろしくお願いします。
>>191 Function mysep(varDat As Variant) As Long
Dim varBuf As Variant
Dim i As Long
Dim ans As Long
varBuf = Split(varDat, ",", , vbBinaryCompare)
For i = 0 To UBound(varBuf)
ans = ans + CLng(Mid(Left(varBuf(i), Len(varBuf(i)) - 1), InStr(1, varBuf(i), "[", vbBinaryCompare) + 1))
Next i
mysep = ans
End Function
こんな感じでユーザー関数を作ったほうがスマートじゃない?
>191 A1をA2にコピー ]*[ を + に置換 ] を "" に置換 *[ を = に置換
>172,190 最初のデータ範囲がどちらも数値なので、Excelは2系列(線が2本)のグラフを作ろうとしたようですね。 X軸にしたい方のデータを数値から文字にすることで希望のグラフができます。 E1セルに =B1&"" 、F1セルに =D1 を入力して、11行目までフィルコピーします。 E列の &"" で文字列になります。 後は E1:F11 を選択してグラフ作成するだけです。 データをいじることができない場合はちょっとややこしいですが、次に説明する方法で可能です。
195 :
194 :2010/06/07(月) 09:25:26
>172,190 データはいじらない方法です。(ただし、当方Excel2003なので、このとおりにできないかも) 1 D1:D11を選択し、グラフアイコンをクリック、折れ線グラフを選択 2 [次へ]をクリック → グラフウィザードには、X軸は1〜10の(仮の一連番号)で線が1本のグラフが表示される 3 「系列」タブをクリックする 4 下の方の「項目軸ラベルに使用(T):」の欄の右端部分をクリック 5 B2:B11を選択して、欄の右端部分をクリック →「項目軸ラベルに使用(T):」の欄の内容が =Sheet1!$B$2:$B$11 になる 6 [次へ]をクリック → グラフウィザードには、X軸は0〜9で線が1本のグラフが表示される 7 「タイトルとラベル」のタブをクリック 8 「X/項目軸(C):」の欄(現在空欄)に ビンの重さ を入力する 9 [次へ]をクリック 10 グラフの場所を希望に応じて設定のうえ[完了(F)]をクリック → グラフ描画
196 :
複乳 :2010/06/07(月) 09:37:01
そこまでするなら E2=D2-C2 でピンの重さだけの列作ってそれでグラフにしたほうが早くない
197 :
194 :2010/06/07(月) 10:07:58
>196 最初、E列に =B1&"" とし、D1:E11の範囲でグラフを作ろうとしたけど、 Excelは左側(D列)をX軸、右側(E列)をグラフデータとみなそうとし、E列が文字列 なもんだから、折れ線が表示できなかったんです。
198 :
183 :2010/06/07(月) 10:14:40
>>186 どうもありがとうございます!
ISERROR関数というものがあるのですね。勉強になりました。
原理は理解できたと思うので、応用してうまくやってみます。
見ず知らずの赤の他人なのに、わざわざ丁寧に書いていただいてありがとうございました!
199 :
名無しさん@そうだ選挙にいこう :2010/06/07(月) 10:20:41
【1 OSの種類 .】 WindowsXP home sp3 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 excel 保存 数値 エクセルで表計算をしていたら、セルに数値を入力しても合計の数値が変わらず、 保存をした時に数値が反映されるという妙な現象が起こっております。 会社のPC全てで同時期に同じ現象が起こってしまい、原因がわからず困っております。 1台を共有ではなく、全てのPCで1ライセンスずつ個別にプリインストールされております。 ある日突然このような現象が起こってしまい、全く原因不明です。 同じような現象が起こった方おりますでしょうか? 解決法をご存じの方がいらっしゃいましたら、是非ご教授頂きたく存じます。
201 :
199 :2010/06/07(月) 11:05:21
>>200 ご教授ありがとうございます。解決し、大変助かりました。
誠にありがとうございました。
202 :
複乳 :2010/06/07(月) 12:28:53
203 :
163 :2010/06/07(月) 19:34:34
>>185 全部の漢字を入力するにはどうすればいいの?
204 :
複乳 :2010/06/07(月) 20:02:05
205 :
名無しさん@そうだ選挙にいこう :2010/06/07(月) 20:06:08
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 sum エクセル A1に あ B1に 1 があります sumだと=sum(a1:b1)でエラーがでないのに=a1+b1だとエラーが出るのはナゼ?
206 :
複乳 :2010/06/07(月) 20:10:25
>>205 sumは文字列を除いて足してくれる関数だから。
というか、これはExcelの仕様です
208 :
名無しさん@そうだ選挙にいこう :2010/06/07(月) 20:24:59
手書きで文字など書き込めますか 書類作成時にどうしてもある記号が必要なんですがペンタブあればできるってことはないですよね・・・ OSの種類ってのはXPですが、今手元に使用するはずのパソコンがないのであとはわかりません
>208 Excel以前の問題だ。 周りにPCのこと知ってるヤツはいないか? PCを少しでも理解しているヤツなら分かると思う。
210 :
複乳 :2010/06/07(月) 20:30:06
211 :
163 :2010/06/07(月) 20:30:15
212 :
名無しさん@そうだ選挙にいこう :2010/06/07(月) 20:34:22
>>209 >>210 すみません。PCそれなりに詳しい人いたんですがわかんなかったんです。
記号変換は調べてみたんですがなかったんです
○の中を半分とか、3/4くらい塗りつぶす感じのなんですが
がんばっていろいろ試してみたのに「ずれてる」「ちゃんとしてくれ」とか相手先に言われてもうどうしていいか
もともとパソコンスキル必要ない仕事だったのに泣きたいです
213 :
複乳 :2010/06/07(月) 20:35:36
>>211 漢字は入力できる?出来ないなら出直してきな
まず漢字をA1からA65536に入力、A列で並び替え
A1からA65535を消し、再度入力
そして最後にA列の一番下に残るのが並び替えで最後に来る漢字さ
終わったら私にも教えてね
214 :
複乳 :2010/06/07(月) 20:36:40
>>212 何の記号だそれ?存在しないものなら図形で作る方が早いと思うけど
>>211 繰り返し文使って、chrで出力すればいいんじゃないか。
217 :
名無しさん@そうだ選挙にいこう :2010/06/07(月) 20:40:38
>>214 記号というとちょっと違ったかもしれませんね
ご丁寧にどうもです
図形っていうので手書き作成できるんでしょうか
明日ちょっとやってみます
>>215 どうもありがとう
作って貼り付けたこともあるんだけど「ずれてる」と一蹴されましたどうすりゃいいのさ
愚痴ってすみません。本当にありがとうございました
明日またもう一度いろいろ試してみます
218 :
複乳 :2010/06/07(月) 20:44:20
219 :
複乳 :2010/06/07(月) 20:46:26
220 :
215 :2010/06/07(月) 20:48:43
>217 >作って貼り付けたこともあるんだけど「ずれてる」と一蹴されました 作った図形と、元々のセルの中の文字が「画面上ではきれいに並んでいるけど、 印刷したら重なったり、離れたり」っていうことかな? エクセルは画面に表示された通りに印刷されることは、99%ありません。 例:画面上はセル内の十数文字が切れることなく表示されているのに、印刷すると 右端が切れたり、改行してしまったり こういうときは、印刷プレビューで確認するといいです。
>>217 ちょっと待って!!!!
それ、特殊記号!!!!! 手描きじゃないよ!!!!!
>203 ATOKでもMSIMEでもいいから「文字パレット」を表示させればあとはダブルクリック+[Enter]の繰り返しです。ガンガレ!
223 :
複乳 :2010/06/07(月) 20:57:06
>>222 その手があったか!
おまえ、あたまいいな!
224 :
名無しさん@そうだ選挙にいこう :2010/06/07(月) 20:59:15
>>218 ありがとう。本当にありがとう。でも真ん中塗りつぶしじゃないのw
明日もう一度なんとかしてみます
ダメなら逆切れ気味に「これ以上無理ですってば!!」ってメールでも送るw
>>220 ちゃんと印刷して確かめたんだけどダメだって言われた頑張ります
225 :
222 :2010/06/07(月) 20:59:25
>223 ありがとう。ところで、>219は何なんですか? 今、自分はExcel使える環境じゃないので教えてください。
226 :
163 :2010/06/07(月) 21:15:00
>>213 全部の漢字を入力する方法を教えてよ。
並び替えのやり方そのものは163の質問で結果を出してるんだし、普通の人ならわかるでしょ?
>>224 それUnicodeにしかないよ
出すのは文字コードで
IMEならIMEパッドで探して
228 :
163 :2010/06/07(月) 21:17:38
>>222 文字パレット?
IMEを見たけどありませんでした・・・
>>163 スタート→すべてのプログラム→アクセサリ→システムツール→文字コード表
設定:MS Pゴシックで文字表をカーソル下へみっていってごらん。
お望みのフォントが見つかったらエクセルへコピー&ペーストすればよろし。
230 :
229 :2010/06/07(月) 21:34:49
231 :
222 :2010/06/07(月) 21:37:32
>228 MSIMEだと IMEパッド>文字一覧 になります。 それと、ダブルクリックじゃなくてクリックでいいですが、変換途中の状態になるので [Enter]で確定+[Enter]でセル移動になります。 (>222はATOKでの話でした)
232 :
複乳 :2010/06/07(月) 21:38:03
233 :
複乳 :2010/06/07(月) 21:47:31
縦横比がちょっと変ですが、20×20のマトリクスを作りました。 ○○○○○○○○○○○○○○○○○○○○ ○○○○○○○○○○○○○○○○○○○○ ○○○○○○○○○○○○○○○○○○○○ ○○○○○○○○○○○○○○○○○○○○ ○○○○○○○○○○○○○○○○○○○○ ○○○○○○○○○○○○○○○○○○○○ ○○○○○○○○○○○○○○○○○○○○ ○○○○○○○○○○○○○○○○○○○○ ○○○○○○○○○○○○○○○○○○○○ ○○○○○○○○○○○○○○○○○○○○ ○○○○○○○○○○○○○○○○○○○○ ○○○○○○○○○○○○○○○○○○○○ ○○○○○○○○○○○○○○○○○○○○ ○○○○○○○○○○○○○○○○○○○○ ○○○○○○○○○○○○○○○○○○○○ ○○○○○○○○○○○○○○○○○○○○ ○○○○○○○○○○○○○○○○○○○○ ○○○○○○○○○○○○○○○○○○○○ ○○○○○○○○○○○○○○○○○○○○ ○○○○○○○○○○○○○○○○○○○○ どんな記号を作りたいの?
そもそも丸の大きさもわかんないし。 Excelのスクショにペイントで丸を書いて、どんなふうにしたいのか示してよ。 ていうか、Excelを使う必要があるの? 別のソフトならもっと簡単にできるかもよ。
マクロに書いたコメント文だけを抜き出すにはどうすればいいでしょう? Sub test() Dim A As Long 'A列の最下行 A = Range("A65536").End(xlup).Row 'メッセージを出す MsgBox "A=" & A End Sub これをSheet2に貼り付けて A列の最下行 メッセージを出す にする。(コメント前にあるスペースは残し、「'」は消す)
238 :
複乳 :2010/06/07(月) 23:40:39
>>237 sheet2のA1:A7にはりつけたとして
B1=IF(LEFT(SUBSTITUTE(A1," ",""),1)="'",SUBSTITUTE(A1,"'",""),"")
下にオートフィル
VBEからも直接触れるらしいが欲知らない
239 :
fon :2010/06/07(月) 23:57:54
windows7です A1〜A14にルート2の1,41421356…を1マスずつオートフィルを使って入力するのにはどのような数式をA1に入力すればよいのでしょうか? よろしくお願いします
240 :
複乳 :2010/06/08(火) 00:07:53
>>239 =SQRT(2)
の結果でもみながら入力した方が早いと思うが
B1=SQRT(2)*10000000000000
A1=MID($B$1,ROW(),1)
下にオートフィルタ
241 :
fon :2010/06/08(火) 00:15:50
すみませんが、できませんでした。
>>241 B1に=SQRT(2)
B1の書式を0.00000000000
A1=1
A2=MID(B$1,ROW()+1,1)
A3からA14までオートフィル
243 :
fon :2010/06/08(火) 00:34:12
どうもでした。。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Excel IPv6 2進数 16進数 計算 16進数を2進数に変換したいのですが、hex2bin だと、#NUM! が出て計算してくれません… 16ビットな16進数(1〜65535)を2進数に変換してくれる関数とか、他に無いでしょうか? 128ビットまるごとだと、なおうれす
>>244 ヘルプは見た?
引数に与えられる16進数の最大値は1FFまで
だから200以上はエラーになる
>>245 見てはいなかったですが、確認はしています。
他に無いでしょうか?
n進数の考え方なんてそんなに難しくないから VBA使えるなら自分で作れそうなもんだけどな。 IPv6で検索してる所を見ると他にやりたい事がありそう。 ひとりごとでした。
128ビットって大きな数過ぎて正確には扱えないよね
えっ
251 :
名無しさん@そうだ選挙にいこう :2010/06/08(火) 13:18:38
>>248 なるほど。
素直に16ビットで扱うことは諦めて、8ビットにわけて考えることにします
ありがとうございました m(__)m
あ…そういう前提だから9ビットまでしか対応してないのかもですね
で、IPv6は…正引きや逆引き、プレフィックスその他もろもろ
チェックするアドインでも作ろう…として、最初に躓きましたw
車輪の再発明は好きじゃないので、あれば利用したいなと。
PTRの設定、早速1文字ミスったので…orz
252 :
複乳 :2010/06/08(火) 14:33:23
量が少ないならwindows付属の電卓でいいんじゃないの 表示→関数電卓を選べば2/16進数の計算もできるよ
16進変換なんて32butまでならVBAですぐ作れるじゃん 自分で作らなくても検索すればすぐ出てくるからコピペでもいいし
254 :
名無しさん@そうだ選挙にいこう :2010/06/08(火) 18:20:25
ひとつのセルに入力された結果を見て アタリ ハズレ 空欄(入力待ち) の3種類の表示を使い分けるにはどうすればいいですか?
>254 A1セルの内容によって表示を変える式は2通りあります。 その1 アタリと表示したいA1の内容を式の中に直接書き込む場合 =IF(A1="","",IF(A1="○○○","アタリ","ハズレ")) ○○○の部分を適当に変える アタリとなる内容が数字の場合は =IF(A1="","",IF(A1=999,"アタリ","ハズレ")) などの ように、""は付けない その2 アタリと表示したいA1の内容を別のセル(例:C1セル)に書き込んでおく場合 =IF(A1="","",IF(A1=C1,"アタリ","ハズレ")) C1セルにアタリとなる内容を入力しておく C1セルに入力した内容が見えないように文字色を白にしておくといいです。
257 :
名無しさん@そうだ選挙にいこう :2010/06/08(火) 20:44:46
【1 OSの種類 .】 WindowsXPで製作(Vistaも使用) 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可能 【5 検索キーワード 】 修復 助けてください。 VBAでマクロを作っていたのですが、製作途中である日突然ファイルが開けなくなりました。 ファイルを開くと砂時計が続き、VBAも開けません。強制終了しか方法がありません。 それが原因かわかりませんが、前日の終了間際に同じ名前のプロシージャーが二つあり、エラー表示が 出ていることを確認しています。修復して開こうと試みましたが、”ファイルへのダメージが深刻であり”と表示され 修復できません。なんとか元のファイルを直すことは出来ないでしょうか・・
258 :
名無しさん@そうだ選挙にいこう :2010/06/08(火) 21:24:25
昨日記号が作れないと助けを求めたものです
みなさんご親切にどうもありがとうございました。
>>233 の左から三つ目です。これがもうちょっと黒い部分が多かったり少なかったりの記号なんですが・・
図形のフリーハンドっていうのがあったので枠囲って塗りつぶしでなんとかしました
多分これでどうにかなってると思・・・いたいw
あとついでに質問させてください
うまく説明できないのですが、画面いっぱいにカーソル移動させた時、画面が動かないんです
たとえば・・20列目までは画面に映ってる時に、↓キーで21列目に移動させても画面がすすまないんです。
25列目くらいに移動して初めて21列目が見れるよう(画面移動して)になる
図形をいじってたらいきなりこうなって打ちにくくて困ってます。ちなみに2007です
>>258 スクロールロックキー を押してしまったんじゃないかい?
もう一度Scroll Lockを押せばOK
260 :
複乳 :2010/06/08(火) 21:51:39
>>258 そんな文字はなかったような
下は
>>259 じゃ無ければウィンドウ枠の固定かも
>>257 エクセル ファイル 壊れた
でぐぐる。やり方は色々ある
OOo使うのが一番復旧しやすい気がする
バイナリエディッタでも見れる可能性はある
まぁー多分、作り直した方が早いよ
261 :
258 :2010/06/08(火) 21:55:07
ありがとう。明日見てみます
262 :
名無しさん@そうだ選挙にいこう :2010/06/08(火) 22:18:47
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可・否 【5 検索キーワード 】 関数 桁 参照 基本的な質問ですいません。 データ列の上N桁を読み込んで、別に用意したテーブルの項目名をあてはめることは可能ですか? たとえば、 「データ列」 「テーブル」 002** → 002 北海道札幌市 120** → 120 東京都足立区 530** → 530 大阪市北区 のような。 実際はデータ列は5,000行〜30,000行程度×10シート、テーブルは100行程度のボリュームがあります。 また上N桁は2桁、3桁のように決まっていません。上2桁〜上5桁までばらつきます。 vlookupでは無理のようでどの関数で処理すればいいのか分かりませんでした。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】否 超初心者です。 ページレイアウトタブにある「行番号」を表示させて学習していたら 作成時はもちろん新規作成を出すと必ず行番号1が表示されるようになり 常に行番号の▼を「なし」とクリックしないといけない状態になってしまい 面倒くさくて困っています。 この1が出ないようにするにはどうすればいいでしょうか? よろしくお願いいたします。<m(__)m>
>>262 テータ列・テーブルからそれぞれ作業列に =VALUE("0."&A8) として
=VLOOKUP(データ列の作業列,テーブルの作業列をキーに,列番号,TRUE)
でどうでしょう?
265 :
263 :2010/06/08(火) 22:37:22
ごめんWordでした
( ゚Д゚)ゴルァ!!
267 :
名無しさん@そうだ選挙にいこう :2010/06/08(火) 23:08:36
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 エクセル 表 集計 関数 エクセルで支店ごとの売り上げを合計したい 今もっているデータが、 支店1 得意先 1月 2月 3月 4月 5月 A社 100 20 30 10 50 B社 40 30 20 10 80 C社 30 100 20 40 40 支店2 得意先 1月 2月 3月 4月 5月 A社 10 50 30 40 80 E社 30 30 20 10 30 のようになっています。 これらを全ての支店の売り上げを合計し、全社の得意先別売り上げを 得意先 1月 2月 3月 4月 5月 A社 110 70 60 50 130 (B社、C社以降も同様) のように得意先別・月別の形を残したまま、 計算機能を利用して合計したいです。 どうすればいいですか。
268 :
複乳 :2010/06/08(火) 23:32:52
269 :
名無しさん@そうだ選挙にいこう :2010/06/09(水) 00:41:14
/ が入力できません><
>>267 ピボットテーブルウィザードで「複数のワークシート範囲」で簡単。
次善の方法としては「統合」もある。
使い方はどっちも似たようなもんだ。
次善手の統合なら、表を書き出したい空白セルにカーソルを置いて
統合元範囲に二つの範囲を追加していき、上端行と左端列にチェックを付ければよい。
データが非常に多いときはピボットテーブルだが、それほどでもなければ統合で十分。
Excel2007で質問御願いします。 あるセル上、セル選択状態からいきなり入力を始めて打ち間違いをし 左矢印キーで修正のため戻ろうとするとそのセル内で前の文字に戻らずに 左のセルに移動してしまいます。 入力を始める前にF2とかでセルを編集状態にしてからなら問題ないのですが それをせずにセル内の文字列内で戻る方法はありますか?
ない。
>>274 OnKeyメソッドで出来なくはないが、普通に←を使いたいとき困る。
そういう用途にしか←を使わないのであれば下のfooを実行すればいい。
Sub foo()
Application.OnKey "{LEFT}", "HOGE"
End Sub
Sub HOGE()
SendKeys "{F2}+{LEFT}"
End Sub
上はまずいかな? どっちにしろ実用になるもんじゃないが一応書いておく。 Sub HOGE() SendKeys "{f2}" SendKeys "{insert}+{LEFT}" End Sub
>>270 最初に / を入力する場面が頻出するなら、メニューのツール→オプションで移行タブをひらく。
そこに、Microsoft Offece Excel メニューキー として / が登録されてるから
あんまり使わないキーに書き換えとくことをオススメしとくよ。
あたしは \ に書き換えてる。
281 :
名無しさん@そうだ選挙にいこう :2010/06/09(水) 19:49:24
【1 OSの種類 .】 WindowsXP SP3 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 なるべく使わない方向で 【5 検索キーワード 】 EXCEL グラフ 余白 凡例は消去してグラフをX数値、Yの数値、図だけでグラフを作成し 図を拡大しようとするんですが 右に10mm、上に5mmほどの余白を図で埋める事が出来ないでいます。 余白をなくす設定方法を教えていただけないでしょうか
XP Excel 2003 VBA初心者 VBAでの回答可 セルA1に入力された文字がファイル名になるマクロというのを見つけたのですが Sub test01() Dim x As String x = Sheets("Sheet1").Range("A1").Value Application.Dialogs(xlDialogSaveAs).Show arg1:=x & ".xls" ' End Sub このコードを、フォルダ内にある複数のファイルにバッチ処理するにはどうしたらよいのでしょうか?
283 :
複乳 :2010/06/09(水) 22:05:58
284 :
複乳 :2010/06/09(水) 22:17:55
ぎゃー誤爆した
>>281 ないんじゃない。prtscrでコピー、ペイントで編集して貼付けか
気色悪い方法としてリンク貼付けでも対応可能
>>282 複数のファイルだと同じ名前でエラーが出るでしょ
どういう風にしたいの
A1:A5の五つのファイル、とか言うならfornextでRange("A1")をRange("A"&i)みたいに
すればいいとおもうけど
>>282 です。
エクセルファイルは200個くらいあって
それぞれの
セルA1 には 違う文字が入っています
--001.xls---
セルA1 りんご
↓
りんご.xls のファイル名で保存
--002.xls---
セルA1 みかん
↓
みかん.xls のファイル名で保存
…というふうに、200個のファイルをリネームしたいと言うことなのですが…
>>285 これから保存するんじゃなくて、ファイル名を一括で変更したいってこと?
287 :
名無しさん@そうだ選挙にいこう :2010/06/10(木) 17:42:20
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】いいえ 【4 VBAでの回答の可否】 否 ある作業を2回行い、その作業にかかる時間を記録しました。時間が短い方が記録が良いです。 そのことをエクセルのグラフにどう表したらいいかわかりません。 普通にグラフを作ると時間が長い=数値が大きいので、記録が良くない方のグラフが上にきてしまい、ぱっと見では時間が長い方が良い記録であるようなグラフになってしまいます。 どうしたらいいでしょうか?
>>285 Excel2003以下用
2007以降は拡張子がたくさん増えたから自分で工夫して
Sub いっぺんに名前変更()
ChDir "C:\data\ファイルがいっぱい入ってるフォルダ"
OldFilename = Dir("*.xls")
While OldFilename <> ""
Workbooks.Open OldFilename
NewFilename = Worksheets(1).Cells(1, 1)
ActiveWorkbook.Close
Name OldFilename As NewFilename & ".xls"
OldFilename = Dir()
Wend
End Sub
>>288 すすすごいです! ありがとうございます!!
290 :
複乳 :2010/06/10(木) 18:12:12
>>285 何という読解力の低さ・・泣けるね
では改めて↓。Cドライブで作業しないとうまくいかないかもしれない
Private Sub CommandButton1_Click()
ChDir ThisWorkbook.Path
di = Dir("*.*")
Do While di <> ""
Workbooks.Open di
Workbooks(di).Activate
x = Sheets("Sheet1").Range("A1").Value
Application.Dialogs(xlDialogSaveAs).Show arg1:=x & ".xls" '
Workbooks(x & ".xls").Close
di = Dir()
Loop
End Sub
292 :
複乳 :2010/06/10(木) 19:32:40
そう思うならそういうコード書いてあげればいいんじゃない 書けないなら黙ってれば
("*.*") ←かわいい!
294 :
複乳 :2010/06/10(木) 20:31:39
>>287 =最高記録/時間 の行を作って最高記録が100%になるようなグラフにするか
もうそのままのグラフにするか、表のままか
そういや近距離走者のグラフとか見たことないな。あんまりさが無いからかな?
>>293 ("*.*") < きもいだろ・・
程度の低いのを後出しするって・・・ アホコテはどんだけオナニー好きなんだよw
296 :
複乳 :2010/06/10(木) 21:04:38
雑談は雑談スレへ
レス早w
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 あるxlsファイル中の、指定したセルのデータと同じ名前のxlsファイルを開いて、 マクロで編集・保存して閉じ、指定するセルを移動し、そのセルのデータと同じ名前の・・・という作業を自動で繰り返すことは可能ですか? A.xlsのA1が「B」だったらB.xlsを開き、A.xlsのB1以降のデータを使ってB.xlsの該当部分をマクロで編集・保存して閉じ、 A.xlsのA2が「C」だったらC.xlsを開き、A.xlsのB2以降のデータを使ってC.xlsの・・・という感じです
>>298 質問が漠然としすぎているけど、まあだいたいのことは可能
301 :
複乳 :2010/06/10(木) 22:01:30
>>298 こんな感じ?
Sub unko()
Dim wbWrit As Workbook
ChDir ThisWorkbook.Path
gyo = Range("A65536").End(xlUp).Row
For i = 1 To gyo
sagyou = Cells(i, 2).Value '作業。とりあえず値を変数にでも入れておく
fairu = Cells(i, 1)
Set wbWrit = Workbooks.Open(fairu & ".xls")
wbWrit.Sheets("sheet1").Cells(3, 1).Value = sagyou '値をセルにでも入れる
Workbooks(fairu & ".xls").Close
Next
End Sub
>>299 見た
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい(初級レベル) 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 excel 特定の文字列 抽出 一列の中に10文字の英数文字列(10文字)、カナ漢字文字列(制限なし)、半角英文字+記号(制限なし)など、 3パターンの文字列があり、それが10列ぐらいあります。 その中から列ごとに英数文字列(10文字)だけを抽出したいのです。 a 1 12345abcde 2 本日は晴天なり 3 aa+bb+cc 4 a1b2c3d4e5 5 本日は悪天なり 6 aa a1〜a3がワンセットとなってまして、1列30行程度、最大10列ぐらいある表の中から ↑の例では a1とa4を抽出したいのです。
>>302 隣の列がB列とする
B1のセルに「A」
B2のセルに「B」
B3のセルに「C」
と、それぞれ入力する。
B1からB3まで範囲選択し、オートフィルで連続データを作成。
ABCABCABCABC…と入力出来る
分からなければ「オートフィル」で検索
B1のセルを選択し、「データ」メニューから「オートフィルタ」を選択
B1にあるオートフィルタの下向き三角をクリックし「A」のみ抽出
A列を範囲選択し、コピー。
Sheet2などに貼り付け
>>303 d
なるほど、こういう変化球があるんですね。
参考になりました。
上で書くの忘れてましたが、a1〜a3はワンセットなのですが、
30行の中に空白行が入ることがありまして(規則性なし)、教えていただいた方法だと…。
本当にすいません。
305 :
303 :2010/06/10(木) 22:59:52
>>304 1.最初にオートフィルタ
2.三角ボタンの下の方にある「空白以外のセル」で抽出
3.データ全域を範囲選択しコピー
4.別シートに貼り付け
そこで、上記の作業してはいけない?
306 :
302 :2010/06/10(木) 23:31:47
>>305 実は実際に使うファイルは会社なのでいますぐ確認できないのですが、
確か空白セルで抽出ができなかった記憶があります。
でも明日会社で確認してみます。
レス、2回も有り難うございました。
307 :
複乳 :2010/06/11(金) 08:12:26
>>302 B1=IF(LEN(A1)=10,1,0)
C1=IF(AND(OR(AND(CODE(MID(A1,1,1))>=48,CODE(MID(A1,1,1))<=57),
AND(CODE(MID(UPPER(A1),1,1))>=65,CODE(MID(UPPER(A1),1,1))<=90)),
OR(AND(CODE(MID(A1,2,1))>=48,CODE(MID(A1,2,1))<=57),
AND(CODE(MID(UPPER(A1),2,1))>=65,CODE(MID(UPPER(A1),2,1))<=90)),
OR(AND(CODE(MID(A1,3,1))>=48,CODE(MID(A1,3,1))<=57),
AND(CODE(MID(UPPER(A1),3,1))>=65,CODE(MID(UPPER(A1),3,1))<=90)),
OR(AND(CODE(MID(A1,4,1))>=48,CODE(MID(A1,4,1))<=57),
AND(CODE(MID(UPPER(A1),4,1))>=65,CODE(MID(UPPER(A1),4,1))<=90)),
OR(AND(CODE(MID(A1,5,1))>=48,CODE(MID(A1,5,1))<=57),
AND(CODE(MID(UPPER(A1),5,1))>=65,CODE(MID(UPPER(A1),5,1))<=90))),1,0)
D1=IF(AND(OR(AND(CODE(MID(A1,6,1))>=48,CODE(MID(A1,6,1))<=57),
AND(CODE(MID(UPPER(A1),6,1))>=65,CODE(MID(UPPER(A1),6,1))<=90)),
OR(AND(CODE(MID(A1,7,1))>=48,CODE(MID(A1,7,1))<=57),
AND(CODE(MID(UPPER(A1),7,1))>=65,CODE(MID(UPPER(A1),7,1))<=90)),
OR(AND(CODE(MID(A1,8,1))>=48,CODE(MID(A1,8,1))<=57),
AND(CODE(MID(UPPER(A1),8,1))>=65,CODE(MID(UPPER(A1),8,1))<=90)),
OR(AND(CODE(MID(A1,9,1))>=48,CODE(MID(A1,9,1))<=57),
AND(CODE(MID(UPPER(A1),9,1))>=65,CODE(MID(UPPER(A1),9,1))<=90)),
OR(AND(CODE(MID(A1,10,1))>=48,CODE(MID(A1,10,1))<=57),
AND(CODE(MID(UPPER(A1),10,1))>=65,CODE(MID(UPPER(A1),10,1))<=90))),1,0)
E1=IF(ISERROR(SUM(B1:D1)),"",IF(SUM(B1:D1)=3,A1,""))
308 :
複乳 :2010/06/11(金) 08:14:24
VBAアリだったのか・・
年月日が入ってるセルから月の値だけ取り出して、更にその月の値を-1した値を返すに式はどうなりますでしょうか? 例「20071122」と入ってる場合、「11」を取り出して-1して「10」を返す。 「01」が入っている場合は「12」を返してくれる。
310 :
複乳 :2010/06/11(金) 10:22:32
>>302 vbaだと
Sub unko()
gyo = Range("A65536").End(xlUp).Row
For i = 1 To gyo
If Len(Cells(i, 1)) = 10 Then
xxx = 0
For k = 1 To 10
Select Case Asc(Mid(Cells(i, 1), k, 1))
Case 48 To 57, 65 To 90, 97 To 122
xxx = xxx + 1
Case Else
xxx = -100
End Select
Next
If xxx = 10 Then
Cells(i, 2) = Cells(i, 1)
End If
End If
Next
End Sub
311 :
複乳 :2010/06/11(金) 10:25:03
>>309 A1に入ってるとして
=IF((MID(A1,5,2)*1)=1,12,MID(A1,5,2)*1)
312 :
複乳 :2010/06/11(金) 10:25:48
matigaeta =IF((MID(A1,5,2)*1)=1,12,MID(A1,5,2)*1-1) だな
313 :
309 :2010/06/11(金) 10:34:35
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 複数シート コピー 同一セル 複数シートの特定セル('シート1:シート10'!C2:E2)に書き込まれた文字列を、 新たなひとつのシートへコピーし、一覧にしたいのですが、どのようにしたらいいのでしょう?
315 :
複乳 :2010/06/11(金) 11:38:20
>>314 B1:B10=シートの名前
C1=INDIRECT($B1&"!r2c"&COLUMN(),0)
C1をC1:E10の範囲にオートフィル
後はコピーして値で貼り付けとかそんな感じで
316 :
名無しさん@そうだ選挙にいこう :2010/06/11(金) 11:40:15
>>307 キッタネ〜
こんなのをよく貼る気になるなぁ
317 :
複乳 :2010/06/11(金) 11:47:58
>>316 だよなw
この腕も悪いし気色悪いクソコテさっさと死ねばいいのに
死 ね
>>315 おお、できました。ありがとうございます!
indirect使いこなせるようになろうと思います
つーか次スレのテンプレに ・ご教示とご教授は全く意味の度合いが異なります。 女を一晩買うのと、人身売買で身柄を買うくらいレベルが違います。 質問する時にはちゃんと使い分けましょう って入れておこうぜ。
どうでもいい
激しくどうでもいいわ
>316 310、312、315も十分汚い それが彼の立ち位置。
>>316と>>322のカキコは価値がないどころかマイナス要因だが、複チチさんは役に立ってる。 綺麗なマクロや関数を求めるなら、別スレ立てておまいら(同一人物?)が監修すればいい。
例えば>312なんか素直に書けば =if(mid(a1,5,2)="01",12,mid(a1,5,2)-1) で済むものを余計な型キャストを入れて 汚くしたものを質問者が覚えて帰って行く。 それはマズイのでは。
326 :
名無しさん@そうだ選挙にいこう :2010/06/11(金) 23:51:02
【OSの種類】WindowsXP 【Excelのバージョン】Excel2003 助けてください 突然セルのコピー&ペーストが出来なくなりました ctrl+Cでも右クリックメニューでもセルのコピーは選択できますが 貼り付けがグレーで選択不可能です なお数式バーでコピーしてペーストすることは可能です
327 :
複乳 :2010/06/12(土) 00:01:05
例えば>310も色々あるが、ひとつだけ上げれば kをカウンタに回してるのにxxxでカウントし直してる。 こういう場合、条件に合わないと判定されたら 即ループを抜けるのが基本。
329 :
複乳 :2010/06/12(土) 00:11:25
>>325 なんで*1なんてするの?って質問を待っている
無ければないで、いいじゃない。あって損はしない。
>>324 あらま、嬉しいねぇ
何なら私の書き込み全てに
別解
http://pc11.2ch.net/test/read.cgi/bsoft/xxxxxxxxxx (綺麗な解答スレ)
なんて付け足してもいいけどね
ちなみに私の理想は・・
エクセル自慢と会社で呼ばれてる人が日中、困ったらここに聞きにきて、直ぐに回答もらって戻って
クールに処理して、何事もなかったかのように次の仕事にとりかかると
そんな手伝いができる場所だといいと思うんだよね
更に遅くてもより丁寧な回答や議論が繰り広げられれ、それをまぁ、帰ってから見て更にレベルアップできるような場所なら
すごくいいと思うんだよね
向上心のある人ならまた来てレベルアップするだろうし、無ければそれまでだね
まぁ、どっちでもいい
またくれば答えは教えてあげる。答えから学ぶタイプの人もいる(私がそれだ)
私は私の理想を叶えようと日々努力してるだけだ
私の得意なvlookupやindirectが気に入らないなら私より早く回答すればいい
アク禁なら勉強でもしていればいい
>>316 煽りも弱い。
>>317 何かで止まるな。煽り続けろ。でも「死ね」なんてかくとリアルでややこしくなるからね。がんばってね
というわけで雑談は
http://pc11.2ch.net/test/read.cgi/bsoft/1151651536/ 回答者のためになる議論はいくら続けてもいいと思う。
理想はいいんだけど >288と>290と、その後のレス読むと にわかには信じがたいなあ。 寝ます、おやすみなさい。
331 :
326 :2010/06/12(土) 00:40:46
>>327 再起動で直りました・・・
初歩の初歩でしたね・・・
失礼しました&ありがとうございました
332 :
複乳 :2010/06/12(土) 00:42:23
>>330 今回は
>>288 見落としていました。すいませんでした。
ただ回答の多様性は出来る限り大きく存在すべきだと思う。善し悪しではない。そこから生まれるものもある
って見落とした、の後に言うと価値がなくなりますね
いいけど
>>328 exitforな。やってるうちにめんどくさくなったんだ。一日ほっといたら誰か答えるだろうと思ったが来なかったんだ。許してくれ。悪気はないが俺の怠慢だ
初心者に毛の生えたヤツの言い訳はうざい。
>ただ回答の多様性は出来る限り大きく存在すべきだと思う。善し悪しではない。 >290,307,312 これらはそーゆー次元では無いと思うがな。
335 :
複乳 :2010/06/12(土) 01:00:11
印刷プレビューと印刷結果の差を出来る限りなくしたいのですが、 なにかいい方法はありますか?
>>329 今回は静観してたが、おまいの言い草はあのMicrosoftも認めた日本一の
勘違い君が頭に浮かぶ。
>336 Excelの機能である印刷プレビューの代わりに FinePrint などの仮想プリンタソフトを使うくらいかなあ。 試用版のままだとタダで使えるので重宝してます。(質問の使い方ではありませんが) ただし、このソフトの出力結果と実際に紙に印刷した結果がどのくらい違うかについて、検証したことはありません。
価値無いどころかマイナスと言われちゃったよw >302 Sub hoge() n = 2 '選択範囲の該当する値をH2以降に書き出す For Each r In Selection If Len(r.Value) = 10 Then For i = 1 To 10 ch = Mid(r.Value, i, 1) If ch < "0" Or ch > "z" Then Exit For If ch > "9" And ch < "a" Then Exit For If i = 10 Then Cells(n, "H") = r.Value: n = n + 1 Next i End If Next r End Sub
>>338 印刷プレビューがいまいちなんですね。
FinePrint使ってみます
ありがとうございました!
341 :
名無しさん@そうだ選挙にいこう :2010/06/12(土) 11:55:24
winxp.エクセル2007. VBAで文字列を計算できるように数値にしたいのですが方法がわかりません。 すみません詳しい方いたら教えてください。よろしくお願いします。
"1"+"2"=3
文字列「壱足す弐」を3にするとか?
344 :
344 :2010/06/12(土) 13:01:06
質問があったのですが、自己解決しました
>>339 r.Valueくらい一時変数に入れようよ。
何度も取得するの気持ち悪い。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000→2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 【5 検索キーワード 】= 表示されない など エクセル2000をずっと使っていたのですが、最近2003に変えました。 しかし、2000では計算式を記入するとき、画面上の方にある、たしか「=」みたいなマークを押すと、自動で=が入力されて、 計算が記述できたのですが、2003ではそのボタンがありません。fxというボタンが代わりにあるのですが、これを押すと関数選択の ダイアログボックスが出てしまいます。 2000のような =を入力するボタンを表示させたいのですがどうすればいいでしょうか?
>345 r.valueはお行儀よく書いただけで キモチ悪ければrでもいい。 でこのrは一時変数なんだけどな。
349 :
346 :2010/06/12(土) 13:48:18
>>347 さっそくレスありがとうございます。
=ボタンないんですか。
へこむ・・・・せっかく2003にしたけど、特に2003にしたメリットないな〜と思ってたけど、メリットどころかデメリットの方が多いとかになりそうで鬱です。
>+で代用するのが楽です
+で代用とはどういうことでしょうか。+ を押してみたのですが特になにも起きないのですが・・・。
質問ばかりですみません。
「=A1+B1」と入力する代わりに「+A1+B1」と入力します。 テンキーがあればかなり楽です。自分はこの方法知ってから=ボタン使わなくなりました。
351 :
名無しさん@そうだ選挙にいこう :2010/06/12(土) 14:52:39
341です。
>>343 例えば”32”とかを計算できるように数値化したいのです。
ネット等からコピペしたりすると文字列になっていることがあるので。
関数を使えば”value”で解決なのですが、これでもうまくいかなかったのでVBAでやってみようとおもったのですがうまくわかりません。
たとえばA1に"12"がはいってるとして =LEFT(A1,1)+RIGHT(A1,1) の値は3になる。これでいいのか?
Excel2000は、2003でつくったマクロ(例えば自動記録でつくった並べ替えとか)が使えないYO! 「青いシート見出しを見て」とか言われてチンプンカンプンだったときもあったな・・・
>>351 セルを標準にします。セルを編集(ダブルクリック)状態にします。それで、数値になるよ。
vba使うまでもない。
ダブルクリックが面倒だったら、「区切り位置」ですぐ「完了」にすればおk
>>348 rって書いてもr.Valueを3回取得してることにかわりないわな。
オブジェクト変数じゃなく値を格納する一時変数を使わないと気持ち悪い言ってるんだよ。
複案があるなら、それを書かないと前掃除大臣みたいでカコワルイ!!
357 :
名無しさん@そうだ選挙にいこう :2010/06/12(土) 16:33:09
>354 オブジェクトのプロパティはメンバ変数みたいなモンで r.value自体が値を表す変数のイメージがあるけど 値を求めるメソッど(?)みたいに負荷がかかるなら あんたの言うとおりだわ。実際このあたりはよくワカラン。
>>658 Valueの取得ってのは結構重いんだよ。
2回以上使う場合は適合する型の一時変数に入れるのがコーディングの基本だ。
いわゆるキャッシュだな。
Variantの2次元配列でも言えることだ。
何度もa(i,1)とか同じ要素が出てくると汚いし遅い。
実際は1回しか使わなくても言えることなんだが、そこまではやらなくてもいいだろう。
360 :
349 :2010/06/12(土) 18:00:05
>>350 なるほど、「+」入力とか最初何を言ってるのかと思いましたが、要は+を押しておけば数式入力モードになり
またその後の数式がどうなろうと、最初に「+」が入っても邪魔にならないから、「+」を押すいうことですね。
そういう発想ができるところがすごいと思います。ぜひ使わせていただこうと思います。
それはそれなのですが、しかし、やはり「=」ボタンは欲しいですね。
なぜ「=」ボタンを廃止したのか理由が全く見えません・・・・。
361 :
349 :2010/06/12(土) 18:05:26
>>359 遅い、重いはよく考えていることです。
勉強になりますので
>>339 を軽くなるよう清書していただけませんか?
357のリンク先にならって数式バーに「=」を追加したんだけど、 削除するにはどうすればいいですか?
>>362 半角英数字の小文字10文字のみなら小さな突っ込みなしならこんなかな?
軽くするには配列を使えばいいが、今回は基本の例として配列は使わない。
全角英数字とかアルファベットの大文字も含めるなら適宜StrConvとか
LCaseなどを使えばいいだろう。
変数はわざと1文字を多用した。
2回に分けて書き込む。
>>364 の続き
Sub hoge()
Const L As Long = 10
Dim r As Range
Dim o As Range
Dim v As String
Dim b As Boolean
Dim i As Long
Dim ch As String
Set o = Range("H2")
For Each r In Selection
v = r.Value
If Len(v) = L Then
b = True
For i = 1 To L
ch = Mid$(v, i, 1)
If Not ch Like "[0-9 a-z]" Then
b = False
Exit For
End If
Next i
If b Then
o.Value = v
Set o = o.Offset(1)
End If
End If
Next r
End Sub
すまん、インデントがつかなかったよ。
あと別に軽くはならないけど正規表現もよくある手だね。 Like演算子にしても >If Not ch Like "[0-9 a-z]" Then 下の方が普通かも。 If ch Like "[!0-9 !a-z]" Then
セルに値を入力したときに自動的に編集状態(F2状態)にすることってできますか?
F2押してから入力しれ
370 :
368 :2010/06/13(日) 18:08:08
>369 毎回F2を押すのがめんどいです. ボタンの位置的にも押しにくいです.
>>370 しつこい。
出来ないもの出来ないんだから、Microsoft に注文しろ。
F2をテンキーのどれかに割り当てるのはフリーウェアとかで可能
>>368 これだとすべてのセルになるけどw、ついでにやってみると超うざいけど
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
SendKeys "{F2}", True
End Sub
>>368 上にある数式バーで編集すりゃええやん。
375 :
名無しさん@そうだ選挙にいこう :2010/06/13(日) 21:02:28
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 URL 一括 いつもお世話になっておりますm(_ _)m 文字列となっている複数個のURL(URLは一列に並んでいます)を、クリッカブルURLにするには、 どうすればよいのでしょう? VBAを使わないといけない場合でも、がんばって覚えるので、教えて頂けたら幸いです。m(_ _)m
>373 セルの位置を変更した時にF2を押すのではなく, 文字が入力されセルの内部がアクティブになった 瞬間にF2が押されるようなのがいいです.
>>375 A列にURLが入っているなら、B列に
=HYPERLINK(A1)
としてオートフィル。
ただし、これではA列のデータを消してしまうと元も子もないので、
B列のデータをコピーし、一度Wordに貼り付け。再度Wordの表を
コピーし、今度はExcelに貼り付ければ良い。
378 :
377 :2010/06/13(日) 21:49:12
ポイントは、Excelを起動したまま、Wordを起ち上げること。 Excelデータをコピー ↓ 一旦Excelを終了 ↓ Wordを起ち上げて貼り付け 上記では上手くいかない。 ハイパーリンクの設定が消えてしまう。
超初心者スレから誘導されてきました グラフに関する質問なんですが y=axという関数の、aを変化させた場合の比較グラフが作りたいのですが どうすればいいのでしょうか、教えてください またxの範囲もaの値の違いによって変えたいのですが可能でしょうか?
380 :
名無しさん@そうだ選挙にいこう :2010/06/14(月) 08:02:00
>>可能でしょうか? 可能。 但し超初心者スレに帰れ。
382 :
381 :2010/06/14(月) 09:11:25
>381に追加 あ、ダウンロードのパスは excel です。忘れてた。
Excel2007のピボットテーブルで日付別の集計をやってるのですがデータにない日付の売上も0として表示したいのですが可能でしょうか? 2003ではグループ化をうまく使ってできるようですが、2007でいくらやってもできません。 日付 売上 1/2 100 1/2 200 1/4 150 . . 1/31 200 上を下のようにしたい。 日付 売上 1/1 0 1/2 300 1/3 0 1/4 150 . . 1/31 200
>>383 1.「日付」フィールドを選択しリボンを見る
2.「ピボットテーブルツール」→「オプション」→「アクティブなフィールド」
3.「フィールドの設定」→「レイアウトと印刷」内の「データのないアイテムを表示する」
4.次は日付のグループ化。「グループ」→「グループフィールド」
5.「単位」を「日」でグループ化
6.要らないデータまで表示されたら、「日付」フィールドのオートフィルタで取り除けばよい
>>384 できますた。
3がミソだったんですね。
レイアウトと印刷の中まで見たとこなかったなぁ。
隅々まで探さなきゃだめですね。
386 :
名無しさん@そうだ選挙にいこう :2010/06/14(月) 21:05:30
関数を用いた文字列判定と検索の方法を教えて下さい。 リスト1 A列 B列 テキスト 分類(ここに関数) 赤いクルマ のりもの 赤いトマト やさい 美味しいトマト やさい 大きいリンゴ くだもの おいしいメロン くだもの 日本頑張れ! くに リスト2 A列 B列 特定文字列 判定結果 クルマ のりもの トマト やさい リンゴ くだもの 日本 くに テキスト1の中にリスト2に一致する文字列を含む場合、 分類欄に判定結果を返すような関数を教えて下さい。 なお、リスト2は数十行あるため、if式で入れ子にする やり方は不可です。判定結果が数値ではないので、 SUMIFは使えません。 どなたか是非助けて下さい!
無理
数百あると無理だけど、数十ならIFでいける 試しもしないで不可とか言わないように
>>386 リスト2がシート1だとして
=INDEX(Sheet1!B:B,MIN(IF(ISERROR(MATCH("*"&Sheet1!$A$2:$A$5&"*",A2,0)),10^10,MATCH("*"&Sheet1!$A$2:$A$5&"*",A2,0)*ROW($A$2:$A$5))))
CTRL+SHIFT+ENTER同時押しで配列数式。
ただし、エラー対策(なかったとき)はしていない
391 :
名無しさん@そうだ選挙にいこう :2010/06/15(火) 02:52:11
windows7のパソコンのExcel2007が非常に使いにくい。 office2003のCDで使い慣れたExcel2003をインストールしたら動きますか? ちなみにどうやってインストールしたら良いのでしょう? 2003と2007の共存が理想ですが、やっぱり2007はアンインストールしなければならない?
>>391 インストールできてちゃんと動作します。
共存もできますが、ちょっとコツが必要です。
インストールする時、初期状態だと2003と2007でフォルダ名が一緒になるので、手動で変更しないと
プログラムが上書きで消されてしまいます。
あと、Excelのファイルをダブルクリックするとうまく開けないことがあるので、
必ずExcelを先に起動してから「開く」メニューからExcelのデータを指定する必要があります。
393 :
複乳 :2010/06/15(火) 09:15:29
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル 関数 一致 抽出 Sheet1にデータがあります。 番号 日付 名前 識別CD 12桁数字 0615 佐藤 001(3桁数字で000〜100まで) ↑1ヶ月分あり↑100種類くらいあり ↑一致するものは無くすべてユニーク 以下、↓500行くらい並んでいます。 Sheet2〜Sheet30くらいまでに、1シート当たり識別CDが4〜5個位、 適当に振り分けられていて、該当する識別CDのあるシートに、 Sheet1にあるデータ(番号、日付、名前)を全部表示させたいです。 ググって見つけた配列関数(countifとrowとかいろいろ組み合わせたもの)で 識別CD1個分ずつ、データを別シートに表示させることは出来たのですが、 それを順番にリストで並べることが出来ません。 (識別CD1つにつき、いくつのデータをひっぱってくるのかがわからないため 全てのセルに、5個分の配列関数を入れると重くなりすぎてしまうので) やりたいことは、識別CD5個分をオートフィルタオプションで表示させたものを、 別シートにそのまま表示したいのですが、いい方法を教えてください。
シート2〜30をひとつのシートにまとめる
396 :
名無しさん@そうだ選挙にいこう :2010/06/15(火) 21:26:31
386です。 皆様、ありがとうございます。 =INDEX(Sheet1!B:B,MIN(IF(ISERROR(MATCH("*"&Sheet1!$A$2:$A$5&"*",A2,0)),10^10,MATCH("*"&Sheet1!$A$2:$A$5&"*",A2,0)*ROW($A$2:$A$5)))) のMIN関数と10^10の意味が分かりません。10の10乗?どういう意味でしょう? ifの入れ子は試したのですが、式が長くなりすぎるのでどうしてもリストが使いたいのです。 どうか、分かる方教えてください!お願いします。
>396 「10^10」の意味:無限大に近い数を設定する。今回の例ならば10^3でも10^4でも可 「MIN関数」を使う理由:↓ 文字列の中に特定文字列が存在しない(ISERRORが真になる)とき10^10を設定し、 文字列の中に特定文字列が存在したとき、当該行位置を設定する。そして、 MIN関数で最も少ない数(特定文字列に一致したときの行位置)を返す。 式を入力するとき、[Enter]ではなく、[Ctrl]+[Shift]+[Enter]で入力すると配列式となるので、 「赤いトマト」の場合は 10^10,3,10^10,10^10,10^10 の5個の数字から最も小さい数=3が MIN関数の答えとなり、INDEX(Sheet1!B:B,3)はB3セルの値="やさい" となる。 >390さんが >ただし、エラー対策(なかったとき)はしていない とは、 特定文字列に一致するものがなかった場合は、5個とも10^10になるのでエクセルの最大行をはるかに 超えるからエラー(#REF!)になる、ということ。エラー表示にしたくなければ10^10のかわりに 65536にでもしておくと空白表示になるのでいいかも。(最下行まで使ってない場合)
398 :
397 :2010/06/15(火) 22:37:55
>397 の名前のところは 390ではありません の間違いでした。orz
>>396 Microsoft Queryで出来る。
400 :
名無しさん@そうだ選挙にいこう :2010/06/15(火) 23:37:58
エクセルの改ページプレビューで見るとはみ出ていないのに 印刷すると文字の右側がはみ出てしまいます。 印刷したものと改ページプレビューの見た目を同じにするにはどうしたらいいですか
>400 「改ページプレビュー」っていっても「編集画面」なので印刷結果と異なるのはExcelの仕様です。 「印刷プレビュー(編集はできない)」で確認してください。 印刷プレビューと実際の印刷結果が異なる場合は、>336,338を参考にしてください。
>>400 新参乙です(悪いとは言ってない)
さんざんガイシュツ。
ま、ここの人は優しいから俺以外のシッタカが教えてくれます。
>>402 エクセルの一番有名なダメ仕様、未だに治ってない。
404 :
◆RKItBcY.UI :2010/06/16(水) 15:44:19
質問です、というかお手伝いお願いします
▼━質問テンプレ (出来れば使ってね♪) ━━━━━━━━━━━━
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 さわったばかりでまだまだ
【4 VBAでの回答の可否】 可
たくさんのセルの、内部にある文章の一部分だけ文字の色を変えたいんです
そこでネットの海をさまよって、とあるマクロを見つけ
さらにそれをちょいちょい改ざんして以下のようになりました
ttp://ccfa.info/cgi-bin/up/src/up37660.txt.html これでもかなり思い通りにいってくれたのですがひとつ問題があって
目的の文字列がひとつのセルの中にふたつ以上あった場合に
文字列の長さが異なっているとふたつめ以降の文字列の長さには対応してくれないのです
例:その魔物を倒すには「聖水」と「十字架」と「月桂樹の葉」が必要じゃ。
ここでカギカッコの始まりから終わりまでの文字(3箇所)の色を変えたいんだけど
上記のマクロだとどうも「聖水」を見つけてカギカッコ開始から4文字だと判断しちゃって
十字架のほうのトジカギカッコとか、の葉」とかまで変わってくれないっていうね
(次のセルだとまた文字数をカウントしなおしてくれる)
セルを分割とかはしたくないし、カギカッコじゃないやつも色変えたいのあるし
目的によって色も変えたいしで、ここからどーしたらいいんだろ・・・
だれか とっ て も カン ペキ だ というマクロに改良してー!
405 :
複乳 :2010/06/16(水) 16:23:53
>>404 こんなんでいいかな
色を変えたいセルを選択してマクロ実行
hajimemoji = "「"
owarimoji = "」"
を変えるとはじめと終わりの文字を設定できる
後は自分で頑張れ
406 :
複乳 :2010/06/16(水) 16:26:47
Sub Macro1() Dim hajime, i, nagasa Dim hajimemoji, owarimoji hajimemoji = "「" owarimoji = "」" arColorIndex = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, _ 10, 11, 12, 13, 14, 15, 16, _ 33, 34, 35, 36, 37, 38, 39, _ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, _ 50, 51, 52, 53, 54, 55, 56) nagasa = Len(Selection.Value) For i = 1 To nagasa If Mid(Selection.Value, i, 1) = hajimemoji Then hajime = i End If If Mid(Selection.Value, i, 1) = owarimoji Then arColorIndex = InputBox(Mid(Selection.Value, hajime + 1, i - hajime - 1) & " に設定する色を次の中から数字で指定してください" & vbCr & vbCr & _ "0:自動 , 1:黒 , 2:白 , 3:赤 , 4:明るい緑 , 5:青 , 6:黄 ," & vbCr & _ "7:ピンク , 8:水色 , 9:濃い赤 , 10:緑 , 11:濃い青 , 12:濃い黄 ," & vbCr & _ "13:紫 , 14:青緑 , 15:25%灰色 , 16:50%灰色 , 33:スカイブルー ," & vbCr & _ "34:薄い水色 , 35:薄い緑 , 36:薄い黄 , 37:ペールブルー ," & vbCr & _ "38:ローズ , 39:ラベンダー , 40:ベージュ , 41:薄い青 ," & vbCr & _ "42:アクア , 43:ライム , 44:ゴールド , 45:薄いオレンジ ," & vbCr & _ "46:オレンジ , 47:ブルーグレー , 48:40%灰色 , 49:濃い青緑 ," & vbCr & _ "50:シーグリーン , 51:濃い緑 , 52:オリーブ , 53:茶 ," & vbCr & _ "54:プラム , 55:インディゴ , 56:80%灰色", "文字色の指定", 0) ActiveCell.Characters(Start:=hajime + 1, Length:=i - hajime - 1).Font.ColorIndex = arColorIndex End If Next End Sub
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 無理 【4 VBAでの回答の可否】 無理無理 カレンダーに毎日のデーターを記入したいんですが、 いちいち日付を1年分も打ち込まなくても、でぇーーーーってでる方法はありますか? 初めてなんですが、よろしくお願いします。
オートフィル
410 :
407 :2010/06/16(水) 19:04:52
>>408 >>409 ありがとうございます。
こんなめんどくさい作業が手作業のはずはない!!と思ったのですが、
なんという名前の作業かわかりませんでした。
早速作業できます。本当にありがとうございました。
エクセルでファイルにパスワードをかけたのですが忘れてしまい開けません エクセルアナライザーをインストールしたのですがうまく使えません、どうすればいいでしょうか?
412 :
名無しさん@そうだ選挙にいこう :2010/06/16(水) 19:31:52
質問です! エクセルのワークシート上にコンボボックスを設置し、 プロパティの「ListFillRange」にセル範囲を設定後、 保存して終了。 再度、ファイルを開き、即「×」ボタンで終了しようとしたところ、 修正していないのに上書き保存の確認ダイアログが出てきました。 ListFillRangeに何か設定するとファイルを開いたときにリストが再設定され それがファイルの変更フラグに影響を与えているということなのでしょうか?
413 :
名無しさん@そうだ選挙にいこう :2010/06/16(水) 19:59:33
Office 2010 発売4h前 age x64入れてみるか。x64なら膨大な計算や描画を要する シミュレーションに使えそう。
>411 途方に暮れて下さい。
415 :
名無しさん@そうだ選挙にいこう :2010/06/16(水) 21:28:44
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 重複 A1〜M100ぐらいまでのセルに色々な単語が入ってて 2個以上ある単語を全てチェックしたいんですけれど 抽出するうまい方法無いですか?
COUNTIFで2以上をフィルタ
If Left(Cells(i, 1).Value, 1) = "福" Then Cells(i, 7).Value = "合格" ElseIf Left(Cells(i, 1).Value, 1) = "宮" Then Cells(i, 7).Value = "合格" ElseIf Left(Cells(i, 1).Value, 1) = "山" Then Cells(i, 7).Value = "合格" ElseIf Left(Cells(i, 1).Value, 1) = "長" Then Cells(i, 7).Value = "合格" ElseIf Left(Cells(i, 1).Value, 1) = "愛" Then Cells(i, 7).Value = "合格" ElseIf Left(Cells(i, 1).Value, 1) = "大" Then Cells(i, 7).Value = "合格" End If Cells(i, 1)の頭文字が振り分けたいですけど おねがします
>>415 とりあえずピボットテーブルで各データが何個あるか数えろ。
2個以上あるものを抽出すれば良い。
419 :
複乳 :2010/06/16(水) 22:13:19
>>417 何を聞きたいか分からないけどエスパーで
If InStr("副宮山長愛大", Left(Cells(1, 1).Value, 1)) > 0 And IsNull(Cells(1, 1).Value) = False Then
みたいにすれば一行ですむ。
>417 何をたずねたいの? >417の記述をもっとスマートに、ってことですか?
>>415 ,418
自分はピボットテーブルが使えないのと
データの種類も範囲も膨大なので
1種類ずつ単語の数を数えるのは避けたいんですが
無理ですかね?
>415,422 元データがA列〜M列まであるようですが、1列に整形することはできませんか?
>>423 手動で何とかします。
1列にしたら2回以上ある単語の抽出可能ですか?
1列のデータにするのが正しいExcelの使い方だが、A列からM列でもピボットは使える。
>>424 並び替えて上と異なり下と同じものを抽出。
>>422 ピボットテーブルでデータの種類と個数を調べるなんてアホでもできる
食わず嫌いしてないでさっさとぐぐって覚えろ
428 :
423 :2010/06/17(木) 00:02:58
>424 A列だけに整形できた後に、B1セルに以下の式をいれて下にフィルコピーしてください。 =IF(AND(COUNTIF(A:A,A1)>1,COUNTIF(A1:$A$1,A1)=1),A1,"") 同一内容が2個以上で、最初に出現したものだけがB列に表示されます。 後はオートフィルタでB列の▽をクリックし、空白以外のセルを選択するといいです。 整形には、並び替えは不要です。 並び替えまでするのなら>426さんの方法で、具体的にはB2セルに =IF(AND(A1=A2,A2<>A3),A2,"") を入れて下にフィルコピー。B1セルは空白のままとする。 そしてオートフィルタ以下の操作は上に同じです。
COUNTIFは使ってはいかんよ。
>>426 が正しい考え方。
>429 COUNTIFに不具合でも?
>>430 おまいの頭が不具合
考えればわかることだ
>>417 どこにどうふり分けたいのか全然わかんねんだけど
>>406 うまく動作してくれないです・・・
まず第一に、たとえば
その魔物を倒すには「聖水」と「十字架」と「月桂樹の葉」が必要じゃ。
のセルで行うと一番最初のカギカッコの次から一番最後のトジカギカッコの手前の間まで全部の色が変わってしまいます
その魔物を倒すには「<color>聖水」と「十字架」と「月桂樹の葉</color>」が必要じゃ。
みたいな感じになってしまいます
自分がやりたいのは
その魔物を倒すには<color>「聖水」</color>と<color>「十字架」</color>と<color>「月桂樹の葉」</color>が必要じゃ。
みたいな感じです
なお、始まりと終わりの文字列が同じである文字列は全て同じ色にするつもりなので
毎回色を選択する必要はないです
次に、該当するセルはたくさんあるので一度にシート全体を範囲にしたいです
ひとつひとつセルを選んでいくのはとても無理です
最後に、これはちょっと後出し情報みたいになってしまいますが
(
>>404 のマクロだとこの点は解決済だったので書かなかったのですが)
例ではカギカッコ一文字の始まりと終わりでしたが
中には始まりも終わりも複数文字になることがあるので
始まり、終わり、双方とも任意の文字列を入力できるようにしてほしいです
>>404 に貼ったマクロはかなりよくできていると思うので
そこからの改変はできないものでしょうか?
本当に後一歩のところまで来てるとは思うんですがカユイところに手が届かない感じです・・・
どうかよろしくお願いします
>>434 修正前
SB_pos = InStr(1, tmpRange.Value, search_charB, 0)
search_charC_len = SB_pos - start_pos + search_charB_len
Do While start_pos > 0
修正後
Do While start_pos > 0
SB_pos = InStr(start_pos + 1, tmpRange.Value, search_charB, 0)
search_charC_len = SB_pos - start_pos + search_charB_len
【1 OSの種類 .】 WindowsXPsp2 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Excel 塗りつぶし コピー 数字 で検索しました。 初級な質問かもしれないのですが、Excelでセルを塗りつぶした後、 その塗りつぶしたセル達に数値だけをズラズラとコピーするにはどうすれば良いのでしょうか? 数値をコピーすると塗りつぶしたセルも真っ白になってしまったりするので・・・。
>436 編集−形式を選択して貼り付け−「値」にチェック
>>436 コピーしたあと、貼り付けしたいセルを右クリック→形式を選択して貼り付け→値
>>437-438 ありがとうございます!解決できました!
まだまだ勉強不足ですね・・・、お恥ずかしい
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ(打ち込んだりは出来ますが自作は出来ないです) 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 excel 住所 封筒印刷 複数 EXCELに記載した住所録から任意の一つの住所を選択して 封筒に印刷するマクロを作りました。 しかし、この方法だと複数には対応できません。 マクロを手直しする事で複数選択に対応できないでしょうか? 封筒の巻き込みを防ぐために封筒を上下逆にしているため Word2007の差し込み機能を使う方法だと対応できませんでした。 (具体的には角2封筒の印刷時) 何か知恵をお貸しください。
マクロです。 住所録は列Aから順に名前、郵便番号、住所、住所(市町村名以降) 作業シートでは住所録で1234567と記入された郵便番号を〒123-4567と直しています。 Sub 角2封筒印刷() ' ' 角2封筒印刷 Macro ' ' ActiveCell.Range("A1:D1").Select Selection.Copy Sheets("住所録").Select Sheets("角2封筒印刷画面").Select Range("AZ43").Select ActiveSheet.Paste Range("BA43").Select Application.CutCopyMode = False Selection.Copy Sheets("作業シート(変更禁止!!)").Select Range("D12").Select ActiveSheet.Paste Sheets("角2封筒印刷画面").Select Application.CutCopyMode = False ExecuteExcel4Macro "PRINT(2,1,1,1,,,,,,,,2,,,TRUE,,FALSE)" Sheets("住所録").Select ActiveCell.Select End Sub よろしくお願いします。
>>435 できましたスゴイですカンペキですあなたが神か計画通り!
ありがありがとうございましたありがー
>>441 解読するのがめんどくさいのでヒントだけ
For Each xxxx in yyyy という命令を使うと、複数選択されたセルを順番に1つずつ処理できる
For Each 以下略
(印刷マクロ)
Next
みたいな感じで使う
>441 マクロの自動記録そのままのようですね。繰り返しとか分岐は自動記録では書けないので少し勉強が必要です。 で、>443さんの処理だと宛名1件分の4個のセルを4件分のデータとみなしてしまうので、初心者には???と なりそう。 印刷対象を複数指定する方法はどうするんですか? エクセルの普通の印刷のときのように 1-5,8,9,10 みたいな 番号指定する方法? それとも住所録シートの各行のどこかの列に ○ とか 1 とか入力する方法? それとも、まったく別の方法?
スレ違いになるけどWordの差し込み印刷使ったほうが・・・2003以前だと使いにくかったかもしれないけど
>>443 ありがとうございます。
さっそく調べてみて
Dim r As Range
For Each r In Selection
>>441 のマクロ
Next r
をつけてみて試したところ・・・
一番最初に選択した住所が複数印刷される結果になりました・・・
>>444 アドバイスありがとうございます。
> 印刷対象を複数指定する方法はどうするんですか? エクセルの普通の印刷のときのように 1-5,8,9,10 みたいな
> 番号指定する方法? それとも住所録シートの各行のどこかの列に ○ とか 1 とか入力する方法?
> それとも、まったく別の方法?
これは私向けへのレスですよね?
選択方法は印刷したい名前の部分を選択範囲にしてマクロを動かす方法で行っています。
447 :
444 :2010/06/17(木) 14:28:26
>446 あ、やっぱり1件のデータを複数データとみなしましたね。 >選択方法は印刷したい名前の部分を選択範囲にしてマクロを動かす方法 選択範囲がA1:D1の4個のセルなので、名前だけじゃなく郵便番号、住所1,2まで選択ですよね。 今使っているシートのうち、作業シート(変更禁止!!)は用いず、住所録と角2封筒印刷画面の 2シートだけで1枚ずつでも、まとまって印刷でもできるような方法があります。 自分が年賀状の宛名印刷に使っている方法です。 封筒印刷画面で「次」「前」「1件印刷」の3個のボタンで操作できます。これに「全部印刷」 の機能を加えるのも割と簡単です。興味があるなら資料を準備しますが。
>>446 For Each r In Selection
だとセルごとの繰り返しになってしまうので、
For Each r In Selection.Rows
とやれば1行ごとの繰り返しになる。
基準となるセルの行番号が変数 r に入るので、
その行の左端のセルは Cells(r, 1) で表すことができるようになる。
これを応用するとマクロの最初の行は
Cells(r, 1).Range("A1:D1").Select
のように書き換えることができる。
あとはそのままいけるはず
>440 逆向き印刷できないのはWORDじゃなくて プリンタドライバのせい。 普通付いてると思うけど プリンタのプロパティ、見た?
みなさんありがとうございます。
>>445 しかし、word2007の差し込み機能だとうまくできませんでした。
>>447 > 選択範囲がA1:D1の4個のセルなので、名前だけじゃなく郵便番号、住所1,2まで選択ですよね。
書き方が悪くてすみません。名前部分だけを選択して後はマクロで選択するように
設定しています。
現在では一つのセル選択でしか印刷できないのでこれを住所録の中からCtrlキーで任意に選択して
印刷したいと考えています。
>>448 なるほど。
今やってみた限りだとそれで上手く動かなかったので
出来る範囲で試してみてまた報告します。
>>449 それがプリンタドライバの方も逆向きに対応しておらず
(hpのofficejet 7000 E809a)
wordの差し込みも逆にすることができませんでした。
ttp://www.dotup.org/uploda/www.dotup.org969879.bmp したい印刷方法は一番右の枠外にあるやりかたです。
C3セルに名前を入れて、その名前をファイル名にして保存するとき、 既に保存されてるファイルがあったら末尾に-2、-3と付けて保存するには どう書けばいいでしょうか? Sub 保存() FOL = "D:\data\" SBN = Range("C3").Value TWB = ThisWorkbook.Name Workbooks(TWB).SaveAs Filename:=FOL & SBN & ".xls" End Sub C3セルに"京子"が入ってたら、最初は "京子.xls"、2回目は "京子-2.xls"、 3回目は "京子-3.xls"になります。 よろしくお願いします。
>>452 ありがとうございます。
1回目はおk、2回目になると×のところで止まってしまします。
どこを直せばいいでしょうか?
Sub test10()
''C:\Work\Sample.txtが存在するかどうか調べます
Dim FSO As Object, Target As String
FOL = "D:\data\"
SBN = Range("C3").Value
TWB = ThisWorkbook.Name
For i = 2 To 10
Set FSO = CreateObject("Scripting.FileSystemObject")
'Target = "C:\Work\Sample.txt"
Target = FOL & SBN & ".xls"
If FSO.FileExists(Target) Then
'MsgBox Target & "が存在します"
Workbooks(TWB).SaveAs Filename:=FOL & SBN & "-" & i & ".xls" ←×
Else
'MsgBox Target & "は存在しません"
Workbooks(TWB).SaveAs Filename:=FOL & SBN & ".xls"
GoTo 100
End If
Set FSO = Nothing
Next
100
End Sub
>453 試してはいません。あしからず TWB = ThisWorkbook.Name rem ここまでは>453に同じ i = 1 Set FSO = CreateObject("Scripting.FileSystemObject") Do If i = 1 Then Target = FOL & SBN & ".xls" rem 最初だけ Else Target = FOL & SBN & "-" & i ".xls" rem 2回目以降 EndIf If FSO.FileExists(Target) Then rem フルパスTargetで存在したら i = i + 1 rem 変数を+1してループ継続 Else rem 存在しないときだけ Exit Do rem ループを脱出 EndIf Loop Workbooks(TWB).SaveAs Filename:=Target rem ファイルセーブ Set FSO = Nothing End Sub ファイル存在チェックを「存在しない」になるまで繰り返すこと。 そのために先にフルパスの組み立てを行っておけばいいはず。 FSOの処理ははじめとおわりに1回ずつでいいと思う。
>>454 ありがとうございます。
Target = FOL & SBN & "-" & i & ".xls"でおkでした。
質問です。 ボタンと図形が混在してるシートがあり、 ボタンをクリックしたら特定のボタンだけを削除してから ブックを保存するにはどうすればいいでしょうか?
>>456 特定のボタンを削除してブックを保存するマクロを作ってボタンに登録。
でも1回目で特定のボタンが消えるから、そのマクロは二度と使えない。とても無駄な作業になる。
>>456 >>457 の方式を別のシートへボタン作って登録しておけばOK.
また、マクロの場合は通常”Ctrl+□”で作動する設定をするので
>>457 の>そのマクロは二度と使えない。
ということはないでしょう。
消去する対象が無くなってしまうから二度と使えないって意味では?
>>457 特定する方法によるな
例
一番番号の大きい画像
一番右の画像、等
461 :
複乳 :2010/06/18(金) 09:13:06
>>456 Private Sub CommandButton2_Click()
Shapes("CommandButton1").Delete
End Sub
こんな漢字?保存はマクロの記録でやっておくれ
>>456 ESPしてみた。
たぶんボタンと図形が混在しているシートがたくさんあり
その中から一定の条件を満たすボタンだけ削除し保存したい。
面倒だから、それぞれボタン一発でやりたい
ということかな?
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2002 【3 VBAが使えるか .】 NO 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 現在時刻 条件付き書式設定 初心者です。 スケージュール表を作っていて、 A1に9:00 B1に9:30 C1に10:00・・・・といった感じで並んでいます。(h:mm) やりたいことは経過した時間の部分は赤く表示させたい為、条件付き書式設定を 使用したいのですが、 セルの値が 次の値より小さい =NOW() で設定しても上手くいきません。 シートには今日のスケジュールのみしかない為、日にちは気にせず 現在時刻とだけ比較したいです。 初歩的かもしれませんが、お知恵をお借りしたいです。よろしくお願い致します。 今日のスケジュールのみな為、
すいません。 最後の行はシカトしてくださいです。(m´・ω・`)m ゴメン…
465 :
複乳 :2010/06/18(金) 12:09:35
>>463 シリアル値の問題
A1のように時刻だけ入れると 1900/1/0 の 9:00なんだけど(シリアル値で0.375)
now()は2010/6/18 12:05 と返ってくる(シリアル値で40347.5048・・)
要するに日付部分をひけばいいので
=NOW()-TODAY()とすれば解決
>>463 数式が にして
A1セルだとして
=A1<(NOW()-INT(NOW()))
こんな感じにすればいいんではないかい?
467 :
463 :2010/06/18(金) 13:15:34
>>465 ありがとうございます。 出来ちゃいました(`・ω・´)
TODAYのが邪魔だったワケですね。自分でも理解できてよかったです。
>>466 ありがとうです。
やってみましたが なんか上手くいかなかったです。でもありがとうございました。
(`・ω・´)ありがとおおおおおおおおおおおおおおおおおおおおおおお
数学がほとんどできない馬鹿ですけど 回答者のみなさんと同じレベルのエクセルを身につけたいと思っています そこでみなさんがスキルアップのために利用したサイトとありましたら教えていただけないでしょうか
ヒント Excelと数学は関係ない。ていうかまったく必要ない。 どっちかと言うと数学じゃなくて算数だよ。 よく見てごらん、ほとんど足し算と引き算しかしてないじゃない。 その回数がちょっと多いだけ。あとはパズルみたいなもん。
470 :
複乳 :2010/06/18(金) 16:25:55
>>468 関数といっても数学とは関係ないが、関数は一通り使ってみるといい
「エクセル 関数」でぐぐれば一覧が出てくる
個人的に役にたったサイトは↓。そのままぐぐればトップにでてくるよ
インストラクターのネタ帳
オフィス田中
471 :
名無しさん@そうだ選挙にいこう :2010/06/18(金) 16:43:05
はじめまして。 長文&改行が多いので分割して投稿させてくださいませ。m(_ _)m 現在、EXCEL2003で以下の処理をマクロで実行しようとしているのですが 1004のエラーが発生する場合と、発生しない場合とがあって困っています。 誰か考えられる原因を教えて下さい。 【1 OSの種類 .】 Windows2003 ※VMで使用 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【EXCELの設定】 「オートフィルター」を設定 「ブックの共有」、「ブックの保護」、「シートの保護」を設定 【条件】 「フィルター」を設定し、絞込みをおこなっておく。 【EXCEL終了前の処理】 Workbook_BeforCloseイベント内でFilterModeがTrueの場合には ShowAllDataを実行して、全部のデータを表示してから保存後にEXCELを終了する。
472 :
名無しさん@そうだ選挙にいこう :2010/06/18(金) 16:44:30
>>471 の続きです。
【エラーの発生原因】
ShowAllDataを実行する際にエラーとなる
【1004実行時エラーの発生するケース】
・「ブックの共有」→「フィルター」設定→Workbook_BeforClose→EXCELの終了
・「ブックの共有」→「フィルター」設定→「ブックの共有解除」→Workbook_BeforClose→EXCELの終了
【エラーが発生しないでShowAllDataが正常に実行されるケース】
・「ブックの共有解除」→「フィルター」設定→Workbook_BeforClose→EXCELの終了
・「ブックの共有解除」→「フィルター」設定→「ブックの共有」→Workbook_BeforClose→EXCELの終了
当初は、ブックの共有が掛かっているとShowAllDataは使えないのかと
思ったのですが、そうでもないような・・・。
強いて言えば、ブックをOPENする際にブックの共有設定がONかOFFかという点
位かと。
ただ、終了前にブックの共有を設定したり解除した際にはMultiUserEditingに正しい
値が反映されているので、SowAllDataはブックのOPEN時に共有設定をPublic変数に
保存しておいて、SowAllDataを実行する際には、その変数で条件判断して実行する
かしないか抑制しないといけないものなのでしょうか?
長文すみましぇん。m(_ _)m
MOGUはどうですか?
>>471 If ActiveSheet.FilterMode Then
ActiveSheet.ShowAllData
Else
MsgBox "?"
End If
とかフィルタの状態をみるのかな
2000から2003に移行したのですが、関数の入力が煩雑になっていて、欝です。がなにかうまい対処法はないものでしょうか。 2003では関数を出すfxボタンを押すと、関数のダイアログボックスが出るのですがこれが非常に使いにくいです。 2000なら「=」ボタンを押すとすぐ左に関数一覧が表示されて、それをシングルクリックするだけでいけました。 ところが、2003だと、fxボタンを押すと、関数一覧のダイアログボックスが画面中央に出ます。遠いです。そして、関数の選択もダブルクリックしないといけなくなりました。 ダイアログボックに表示される「関数の検索」も邪魔です。 細かいようなのですが、関数はよく使うのでとても不便です。 2000の時のようにさくっと関数入力がしたいのですがうまい方法はないものでしょうか。
2000に戻す以外に解決方法はない
>>473 mougのことか?
あちらの一般掲示板はかなりひどい。
まぁ追加書き込みできない仕様じゃレベルが低くなるのはしょうがねーだろうな。
なかにはまともな回答者も数人はいるんだが、残念ながら悪貨が良貨を駆逐しつつある。
>>477 悪貨って誰よ?
おまえはまともな回答者なのか?
教えて下さい。 生徒の成績(合計点)をA〜Cで評価する場合の式が分かりません。 合計点165点以上はA 155〜164点はB 154点以下はCです。 AとBだけならできるのですがCが入ると分かりません。
480 :
456 :2010/06/19(土) 00:25:35
>>457-462 説明不足ですみません。
注文書.xlsにマクロを書きます。
シートが複数あって、その中に"LIST"というシートがあります。
そのシートにある[保存]ボタンをクリックすると、LISTというシートだけを
0618_注文書.xlsとして保存します。
図形とボタンが3つあるので、3つのボタンだけを削除したいです。
Sub 保存する()
Book_Name = ThisWorkbook.Name
myPath = ThisWorkbook.Path & "\"
Sheet_Name = ActiveSheet.Name
myDate = Format(Date, "mmdd_")
Sheets(Array(Sheet_Name)).Copy
Shapes("CommandButton1").Delete
ActiveWorkbook.SaveAs Filename:=myPath & myDate & Book_Name
ActiveWorkbook.Close 'SaveChanges:=False
End Sub
Shapes("CommandButton1").Deleteがコンパイルエラーになってしまいました。
>>479 =IF(A1>=165,"A",IF(A1<=154,"C","B"))
>>480 シート名は省略できない。たとえばこう書けばエラーにならない
ActiveSheet.Shapes("CommandButton1").Delete
483 :
456 :2010/06/19(土) 02:47:11
>>482 実行時エラー '-2147024809 (80070057)':
指定した名前のアイテムが見つかりませんでした。
とメッセージが出ます・・・
>>483 >>482 はあくまでも例
実際は自分の作ってるブックに合わせてシート名とボタン名を書き換える
485 :
名無しさん@そうだ選挙にいこう :2010/06/19(土) 06:22:51
>>481 式ありがとうございました。
嬉しくて感激です!ヽ(^o^)丿
数字出してみます。本当にありがとうございました!!!
486 :
475 :2010/06/19(土) 07:15:56
>>476 マジですか〜〜。
なんかもう2003って使いにくいだけですね・・・。なんで金払って新しいの買って、
前より使いにくくなってるのか理解に苦しみます。
とりあえず、ありがとうございました。
>>486 だいじょうぶだ。2007になればもっと使いにくくなっている
488 :
名無しさん@そうだ選挙にいこう :2010/06/19(土) 09:32:16
会社のExcel2007で作ったxlsxのファイルを家のExcell2003で開く方法はありませんか? 会社のExcel2007で旧バージョンのフォーマットのxlsで保存すればいいのは知ってますが、今回は家にいるのでその方法は使えません。 今、xlsxのファイルを家のExcel2003で開く必要がありまして。
開くだけだったらExcelビューアなかったっけ?
>>485 ちなみに4つ以上に分類するときは、ちょっと変えると見やすい
=IF(A1>=165,"A",IF(A1>=155,"B",IF(A1>=55,"C","D")))
ビューアとかコンバータが公式から落とせるけど 2007で追加された新機能は基本的に無視されるからファイルによってはまともに開けない Office2010の体験版入れた方が確実(ただし会員登録が必要) あとはOOoを使うという手もあるけど互換性がちょっと低いのと使い勝手も全然違う
先生、8つ以上は?
>>479 条件が3つ程度ならIF関数で充分だが、沢山ある時は表を作ってLOOKUPの方が簡単。
下のような表がC1:D5にあるとすれば
=LOOKUP(A1,C$1:D$5)
=LOOKUP(A1,C$1:C$5,D$1:D$5)
など。
0 E級
20 D級
30 C級
50 B級
70 A級
90 S級
>>440-441 ,446,450です。
あれから色々やってみて満足に動くようになりました。
皆さんのおかげで助かりました。ありがとうございます。
改善したマクロも載せておきますね。
Dim r As Range
For Each r In Selection.Rows
Dim I As Integer
I = r.Row
Cells(I, 1).Range("A1:D1").Select
Selection.Copy
Sheets("長型3号(2)").Select
Range("Z26").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("AA26").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("作業シート(変更禁止!!)").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("長型3号(2)").Select
Application.CutCopyMode = False
ExecuteExcel4Macro "PRINT(2,1,1,1,,,,,,,,2,,,TRUE,,FALSE)"
Sheets("住所録").Select
Cells(I, 1).Select
Next
End Sub
B評価の幅がえらく狭いな
>>496 D評価だろ?
等間隔にするとINTとか使えるから、それを使えないようにした。
よく見たらC1:D6だったな。 まぁわかるだろう。
>>493 シート上に表を作らずにLOOKUPで振り分ける方法がある。
こんなふうに昇順で並べて書けば、何段階でも分類できる。
=LOOKUP(A1,{0,30,100,155,165},{"E","D","C","B","A"})
↑ ↑
範囲の下限 評価
欠点は微妙に計算が遅いこと。1000個ぐらい並べると目に見えてExcelの動作がもっさりしてくる。
最近のパソコンはそれほどでもないかな?
まあ、同じ式をたくさん並べるときは表を作った方がいいだろうね。メンテもやりやすくなるし。
それと、このスレには配列が大嫌いなやつがいて罵倒してくること。
>>499 罵倒観音は俺もその一人だなw
間違った使い方するやつしか罵倒しないけどね。
SMALLを使うやつは特に罵倒したくなる。
おめーはチンポもSMALLだろってねw
観音様は女だったか。 =LOOKUP(A1,{0,30,100,155,165;"E","D","C","B","A"}) でもいいんだな。
502 :
456 :2010/06/19(土) 16:48:10
>>484 シート名は"LIST"です。
ボタン名は"保存"です。
で、どう書けばいいですか?
>>502 ボタンに「表示されてる文字」と「名前」は関係ないから、まずはボタンの名前を調べる。
デザインモードに切り替えてからボタンを右クリックしてプロパティを開く。
出てきた一覧表の1行目に
(オブジェクト名) CommandButton1
みたいに書いてあるので、この右側の「CommandButton1」の部分がボタンの名前になる。
504 :
456 :2010/06/19(土) 18:05:36
>>504 それはフォームのボタンだから、名前を調べるのはちょっと手間がかかる。
まずデザインモードを解除して、もう一度デザインモードに入り直す。
次にマクロの記録→OKをクリックしてから、名前を調べたいボタンをクリック、
点線で囲まれたらマクロの記録を終了。記録されたマクロを確認すると
ActiveSheet.Shapes("Button 123").Select
みたいになってるはず。この "Button 123" のところがボタンの名前。
で、この場合のボタンを削除するマクロは
ActiveSheet.Shapes("Button 123").Delete
になる。
506 :
456 :2010/06/19(土) 19:39:38
>>505 Application.Run "注文書.xls!保存する"しか記録されません・・・orz
>456,504 当方Excel2003で、起動してすぐは右クリックしても「プロパティ」の項目は出ませんでした。 なにか操作してたら出るようになりました。何したっけ? とりあえず、メニューから 表示>ツールバー>コントロールツールボックス で、このツールバーが独立して画面上に存在するときの 右上隅のアイコン(マウスカーソルをのせると「プロパティ」って表示される)をクリックする。 >505 >504の画像を見る限り、シート上のボタンのように見えます。フォームのボタンだと、 VBA編集画面のフォームの上にしか置けないのでは?
508 :
507 :2010/06/19(土) 19:50:19
コントロールツールボックス vs フォームじゃ、話が噛み合わんわなwww
コマンドツールバーで作ったボタンだろうが、フォームツールバーで作ったボタンだろうが、 デザインモードでそのボタンをクリックすると、通常ならセル位置を表示する場所 (画面の左上の方、数式を入れる部分の左隣)にオブジェクト名が表示されますよ。 そこをクリックして[Ctrl]+[C]でコピーできます。 フォームツールバーによるボタンだと既定値は ボタン 1 になります。 コントロールツールバーによるものの既定値は CommandButton1 になります。 ※ボタンに表示されている文字列はCaptionであり、オブジェクト名ではありません。
>>506 じゃあマクロの記録のあと、目的のボタンを右クリックしてから記録の終了
>>510 フォームボタンの場合はボタン名じゃなくてキャプションが表示されるのでこの場合は使えない。
>>509 はわかってない
斜め読みして茶々入れただけ
>>510 >コマンドツールバーで作ったボタンだろうが、フォームツールバーで作ったボタンだろうが、
>デザインモードでそのボタンをクリックすると、通常ならセル位置を表示する場所
>(画面の左上の方、数式を入れる部分の左隣)にオブジェクト名が表示されますよ。
マクロが登録されてなければそれでいい。
お前が馬鹿丸出しなのは、
>>506 を読んでないか理解してないところ。
さらにエスパーすれば、480でボタン3個と書かれてるから保存ボタンなら
「ボタン 1」になる可能性は低いと推測される。
>>506 デザインモードは気にすることなくボタンを右クリックすれば分るはず。
うまく選択できないときは「オブジェクトの選択」モードで目的のボタンを囲めばいい
もちろんわかってるってば。 右クリックでコンテキストメニューに「プロパティ」が出るのはコントロール、出ないのはフォームのボタン。 フォームボタンの場合、マクロが登録されていなければ左クリックはActiveSheet〜Select、 登録されている場合はApplication.Runになる。 フォームボタンの場合はセル名のところに表示されるのはキャプションであってボタン名じゃない。
ついでに。 詳しそうだから、フォームのボタン名を一発で調べる方法があったらぜひ教えてくれ。 いや、教えてください。
初歩的な質問ですみません。 取引先から送られてくるエクセルでシートの外(?)の部分がグレーになっているのですが どうやったらシートの範囲を広げられるのでしょうか。 範囲を広げて、その部分に計算式やプルダウンリストの選択肢を入れたいのですが。。
>>517 ボタンをクリックして、名前ボックスを見る
>>517 デザインモードでボタンをクリック→数式バーを見る。
>518 >519さんの説明で「標準」にするか「改ページプレビュー」にするかにかかわらず、 印刷範囲は変わりません(印刷プレビューで確認してください) 灰色部分に計算式やプルダウンリストは入力できませんか? 普通なら入力できるはず。 もし、入力できない場合はセルの保護とシートの保護がかかっていると思われます。
519さん、522さん、早速ありがとうございます。 今手元にそのエクセルが無いので未確認なのですが、月曜にでも表示を確認してみます。 グレー部分は、何も入力できなかったので保護がかかっているのかも知れません。
524 :
複乳 :2010/06/19(土) 22:35:01
灰色になってるところの列番号(上のABCDE..ってやつ)がIV列まで無く、途中で切れてるなら 端まで非表示になってる 行番号(←の12345・・)も65536行までなければ同様 CTRL+A押して列番号のAを右クリック、すべて表示を洗濯
525 :
456 :2010/06/19(土) 23:15:26
>>511 ActiveSheet.Shapes("Button 152").Select
ActiveSheet.Shapes("Button 153").Select
ActiveSheet.Shapes("Button 154").Selectになりました。
ボタン3個しかないのに何で?
526 :
456 :2010/06/19(土) 23:23:23
ActiveSheet.Shapes("Button 152").Delete ActiveSheet.Shapes("Button 153").Delete ActiveSheet.Shapes("Button 154").Deleteで消えました。 ありがとうございました。
>>525 たぶん、そのシートの作成者がボタンを何度も作ったり消したりしたんでしょう。苦労の跡。
>>529 苦労じゃなく、マクロでシート作成>シート削除だったりして。
>>520 >>521 その方法でコントロールのボタン名は出たけどフォームのボタン名は出ませんでした
>532 >515参照 オブジェクトの選択モードとは、図形モードにして白矢印をクリックした状態。 マウスカーソルが 太い十字 から 線を組み合わせた十字 になる。
IF文で効率のいい書き方を教えてちょ。 If a=1 Then あ EleseIf a=2 Then い Else あ い End if 「あ」と「い」は色々な処理で十数行ありんす。
if文じゃなくてSelect Case使えば?
i = Cells(1, 1) Select Case i Case 1 Cells(1, 1) = "さわじり" Case 2 Cells(1, 1) = "えりか" Case Else Cells(1, 1) = "べつに…" End Select すきに改変しなされ。
わかりましぇーーーーん(><)
>534 あ、い、という部分が十数行あって同じような処理を繰り返し記述する(あ>い となる部分)のが いやだ!ということなら、あ、い、それぞれひとつの手続(private sub)にでもまとめたら? If a=1 Then call あ EleseIf a=2 Then call い Else call あ call い End if private sub あ() あ の処理 end sub private sub い() い の処理 end sub
おいおい・・・
ちょっとでも書き換えがあるとわからなくなるんかいな
Select Case a
Case 1
あ
Case 2
い
Case Else
あ
い
End Select
>>534 でやってることと全く同じにしたで。
これ以上のことは書きようが無いで。エスパーやないからな。
540 :
538 :2010/06/20(日) 22:15:01
>534
http://okwave.jp/qa/q2717350.html の ベストアンサー以外の回答 のところが参考になるかも
(抜粋)
短いマクロであればそうでもありませんが、基本的な考え方としては
・処理ごとに部品化する事で再利用しやすくする。
・マクロの処理順と関係なく機能ごとにまとめておけるのでメンテナ
ンスや変更などが容易になる。
・問題が起きた時にどの機能が悪いのかテストしやすくなる。
などがあげられます。それよりも、見た目がすっきりすると言うのは
結構重要で、みやすくなる事で打ち間違いなどのバグが少なくなります。
541 :
538 :2010/06/20(日) 22:18:30
>539 たぶん効率がいい書き方ってのが 同じようなことを何回も書きたくないってことではないかとエスパー。 あ、い、それぞれ十数行あるから「コピペ」すればいいんだろうけど、修正もれとかいろいろ考えると 十数行ともまったく同じ処理なら サブルーチン にまとめた方がいいと思う。
cみたくbreak入れなければ流せると便利なんだけどな>select〜case
>>538 やってみます。
>>539 536って、iが整数でそ?
なんで"さわじり"とかになるの?
>543 i に文字列を入れているのではない Select Case i ← iの値によって処理を振り分ける Case 1 ← iの値が1のとき Cells(1, 1) = "さわじり" 1列1行目(A1セル)の値を さわじり" にする
>>541 なるほど。
>>543 |:3ミ
日本語で説明しようか。
A1 が…
1 だったら、A1 に さわじり を入れる。
2 だったら、A1 に えりか を入れる。
それら以外だったら、A1 に べつに… を入れる。
べつに、A1 へ入力する内容は整数だけ…とは、どこにも書いてないし、誰も言ってない。
i に値を入れた後は、べつに A1 の内容が変わろうとも i の内容は変わらない。
だから、最初に A1 に 2 を入れて
>>536 の内容を二回実行すると、2回目には "べつに…" と入る。
なんでこう、ちょっとしたユーモアを解してくれないのか…
546 :
538 :2010/06/21(月) 00:24:22
>534が全くの初心者みたいだから、ひょっとするととんでもない書き方してるかも。 念のために、サブルーチンは元々のマクロとは別の部分に書くこと。 Sub 誤りの例() Sub 正しい例() If a=1 Then If a=1 Then call あ call あ EleseIf a=2 Then EleseIf a=2 Then call い call い Else Else call あ call あ call い call い End if End if Private Sub あ() End Sub あ の処理 Private Sub あ() End Sub あ の処理 Private Sub い() End Sub い の処理 Private Sub い() End sub い の処理 End Sub End Sub
なんで文書書くのに、エクセル使うやつがいるの? 文書はワード、表処理、計算はエクセル。 それぞれ役割がある。 自分が好きでエクセル使うのはいいけど、後の人のこと考えてくれ。 エクセルだと、文書がブツブツ切れて作業大変。 日曜にこんな変な仕事しなくちゃならない俺の身になってくれ。
今宵、EleseIf に突っ込むやつはいねーのか?
野暮だな。 検証してみれば elseif が eleseif だったら、実際には動かないんだから、そこで気づくさ。
>>547 半分…いや9割9分、同意してやんよ。
フォーマット次第では Word より Excel のほうが楽になるけどな。
Alt+Enter とかが多少、面倒なくらいで。
でも、資料を全部パワポで作る上司は赦せん。
ネットワーク図なら Visio 使えよ…
>>550 > でも、資料を全部パワポで作る上司は赦せん。
> ネットワーク図なら Visio 使えよ…
それは、可哀想だな。
会社の資料ってのは、一人の物ではないってのを、ゆっくり言い聞かせたい。
てゆーか、文章を書くならExcelよりWordだろ? 見積書とか報告書なら兎も角、セル内改行で書いてるのか?
>>552 セル内改行なのだよ。もう最悪。
文書が途中で切れるんだよ。
で、この資料の版を更新するんだが、文書変更するのが面倒くさい。
554 :
名無しさん@そうだ選挙にいこう :2010/06/21(月) 02:13:54
うまいひとはExcelでもきれいな文書を作れる へたくそはWord使ってもまったくよれよれの文書しか作れない 使い手次第 うちの上司はなにやってもだめだ 一から俺らが作ったほうが早い
選択したセルの文字データの末尾に新たな文字を書き足すようなマクロを作るにはどうしたらいいでしょうか? 例:選択したセルに「6/21」と書いてあるときマクロを実行したら「完了」を自動で後ろに書き足して「6/21完了」になるようにしたい
>>555 Sub aaa()
Dim v
v = Selection.Value
v = Format(v, "m/dd") & "完了"
Selection.Value = v
End Sub
実用的じゃない気はするね
>>555 Selection.Value = Selection.Text & "完了"
>>474 471,472の質問をした者です。
フィルタの状態を見たいのでありません。
フィルタで絞り込んだ事で、非表示になったデータを
ブックを閉じる前に解除して保存(保存は任意ですが…)できる
ようにしたいのです。
こんな感じで↓
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
'エクセルのバージョンがXP以降の場合
If usrThisApp.nAppVerNo >= 10 Then
Sheets("Sheet1").Select
' オートフィルタで絞り込まれていたら、非表示データを再表示
If ActiveSheet.FilterMode = True Then
ActiveSheet.ShowAllData
End If
Sheets("Sheet2").Select
' オートフィルタで絞り込まれていたら、非表示データを再表示
If ActiveSheet.FilterMode = True Then
ActiveSheet.ShowAllData
End If
Sheets("Sheet1").Select
End If
Application.ScreenUpdating = True
End Sub
でも、ブックの共有が設定されるタイミングによって1004実行時エラーが
発生する場合とエラーが発生せずにブックが終了する場合があるので、原因が
わからず困っているのです。
559 :
名無しさん@そうだ選挙にいこう :2010/06/21(月) 18:29:05
2007で2003のオートシェイプモードのように、 図形を描き続けられる方法って、ありますか?
<今月分 シート1> A B C D 11 田中 1000 10月 14 加藤 1000 10月 ←今月分シートから加わった新しい人 21 鈴木 1200 12月 33 山田 1100 11月 <前月分 今月分とは別ファイル→今月分シート2に必要部分だけコピー> A B C D E F .... 11 田中 1000 10月 魚 a 21 鈴木 1200 12月 花 b 33 山田 1100 11月 山 a 33 山田 1100 11月 川 a 21 鈴木 1200 12月 魚 a 21 鈴木 1200 12月 川 b 44 小池 900 10月 魚 a ←今月分シートにはいない人 Excel2003で毎月シート1のようなデータが届きます。 シート1には新しい人が加わったり、逆に前月いた人がいなくなったりします。 前月分のデータで"a"になっているものは、今月も必要なため 現在は前月分ファイルで"a"のデータだけソートして、値を今月分ファイルのシート2に貼り付け→ A列の番号で並べ替え→シート1で列をコピー挿入し、シート2のE〜以降を貼り付けています。 また、今月増えた人分のところには シート2に空行を入れてE以降を張り付ける際にずれないようにしています。 この作業を毎月なんとか自動的にできるようにしたいのですが、 関数やマクロでなんとかなるものなのでしょうか? VLOOKUPの応用なのかな?と思って色々試しているのですが、良い方法が見つかりません。
>>560 行の追加は関数だけではできないのでマクロが必要
マクロを使えば全自動化できる
>>559 図形の種類を選ぶときにアイコンを右クリックしてモードロック
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 excel 複数条件 抽出 重複 -フィルタオプション シート上に下記のような表があり、その情報を元にA列とB列の組み合わせで重複しない表を作成したいと考えています。作成する際の条件は下記の通りです。 ・C列に数字が入力されていて、0でない正の整数行のみを対象に検索 ・作業列は利用しない ・フィルタオプションは利用しない ・表の作成の際に、A列、B列でソートする ・A列、B列はそれぞれマスタシートあり このような条件で作成するに当たっては配列関数等が必要になるようにも思っていますが、いまいちうまくいきません。どうかご教示下さい。 <元の表> A B C 1 りんご 青森 3 2 みかん 愛媛 2 3 メロン 北海道 5 4 りんご 北海道 9 5 バナナ 台湾 4 6 バナナ 沖縄 0 7 オレンジ アメリカ 10 8 メロン 北海道 1 9 みかん 愛媛 5 … <作成する表> A B 1 オレンジ アメリカ 2 バナナ 台湾 3 みかん 愛媛 4 メロン 北海道 5 りんご 青森 6 りんご 北海道
>>563 >A列、B列でソートする
ってのがよくわかんないけど、こんなのを関数(配列数式)でやるのは、遊びで一部のマニアがやる以外は無理。
vbaでやった方がいいよ
>>563 まずフィルタオプションを使わない理由を書け
次に自分で試してみた数式を1つ書け
遊び程度 A列抜き出し =INDEX(A:A,SMALL(IF(MATCH($A$1:$A$9&$B$1:$B$9,$A$1:$A$9&$B$1:$B$9,0)=ROW($A$1:$A$9),MATCH($A$1:$A$9&$B$1:$B$9,$A$1:$A$9&$B$1:$B$9,0),10^4),ROW(A1)),0)&"" B列抜き出し =INDEX(B:B,SMALL(IF(MATCH($A$1:$A$9&$B$1:$B$9,$A$1:$A$9&$B$1:$B$9,0)=ROW($A$1:$A$9),MATCH($A$1:$A$9&$B$1:$B$9,$A$1:$A$9&$B$1:$B$9,0),10^4),ROW(A1)),0)&"" ソートは意味が分からないし、正直無理だわw 配列で確定で。でも、この数式の意味がわからなければ使わない方がいいよ。もう少し綺麗な式にはなると思うけれど、 やっぱりおすすめしない
>560 いくつかおたずねします。 「今月分」は翌月には「前月分」として使うことになるのですか? 説明を読んでいると、前月分のブックは処理が済めば用済みで、加工が済んだ「今月分」が 翌月には「前月分」の役目となるように理解しました。(翌月には新たな「今月分」が届く) これだと、VBAを使うしかないと思います。 >A列の番号で並べ替え→シート1で列をコピー挿入し、シート2のE〜以降を貼り付けています 今月分のシート1とシート2では、内容が異なるのでE列以降を貼り付けるとまずいのでは? それとも、1行ずつ確認しながら貼り付ける?
>>566 意味がわかるやつは使わない。
使うやつは基地外の配列数式大先生くらいのもんだなw
>>563 は三流SEレベルでよければ、A列とB列でソートしてフィルタオプションで数量が0以外を重複するレコードは無視するだな。
二流レベルを目指すならこれではまだ駄目だ。
上の三流レベルのやつはソートは抽出してからでいいからね。
>>563 は配列数式でやりたければmougに行けばいいんじゃね?
配列数式の得意なMVPがいるから彼ならできるかも。
vlookupの検索値を空白セルにすることはできますか? 二択の表から”○”がついていない方を抜き出したいんです 例としては下表のとき、カメルーンを抜き出すのが目的です A B 1 ○ 日本 2 カメルーン VLOOKUP("検索値",A1:B2,2,FALSE) この"検索値"の部分をどうにかすればよいとは思うんですが、どうしてもわかりません。
>>573 空白セルを検索する方法はない。二択ならIFで調べればいい。
=IF(A1="",A1,B1)
575 :
574 :2010/06/22(火) 01:28:09
まちがえた =(A1="",B1,B2)
>>573 A2に「=""」と入力できるなら検索できるよ。
>>575 あ、ifでいいのか
ありがとうございました
>>576 なるほど、やっぱりifの方がよさそうですね
作業列、配列数式、VBAのどれかを使えば空白セルでも検索できるけどね。 変化球としては空白の代わりに「×」を入れて文字を白にしてしまう。そして×を検索するとか。
>>560 >前月分のデータで"a"になっているものは、今月も必要なため
>現在は前月分ファイルで"a"のデータだけソートして、値を今月分ファイルのシート2に貼り付け→
>A列の番号で並べ替え
ここまでで今月分ファイルの"シート2"は下のようになるって事ですよね?
A B C D E F ....
11 田中 1000 10月 魚 a
21 鈴木 1200 12月 魚 a
33 山田 1100 11月 山 a
33 山田 1100 11月 川 a
44 小池 900 10月 魚 a ←今月分シートにはいない人
>また、今月増えた人分のところには
>シート2に空行を入れてE以降を張り付ける際にずれないようにしています。
はいいんだけど
・今月分シートにはいない"小池さん"
・2行ある"山田さん"
このデータの扱いはどうするの?
(ここを処理しないと結局ずれてしまう気がするのだけど)
581 :
569 :2010/06/22(火) 07:34:01
>>561 さん、
>>568 さん、
>>580 さん、レスありがとうございます。
遅くなってしまい、申し訳ありません。
「前月分」とマージした「今月分」は、翌月には「前月分」として使います。
「前月分」はオートフィルタでF列にaと入っているデータだけ表示。
そのデータを「今月分」ファイルのシート2に値として貼り付けて
A列の番号で昇順で並べ替えています。
シート1にある「今月分」も、A列の番号で並べ替えて
シート2の前月分必要データのA列の番号と比較して、シート2に例えば山田さんの列が2行あれば
シート1の山田さん列の下に、1行追加+データコピー(名前とIDなど)をしています。
シート1ではいなくなっているシート2の小池さんは、シート2上で削除。
シート1にいて、シート2にいない人が11田中さんの下の14加藤さんの場合
シート2の11田中さんと、21鈴木さんの間に空行を入れています。
(新しく加わった14加藤さんのE以降は、手動でデータ入力するので、空欄の必要があるため)
あと、前回書き忘れていましたが、シート1とシート2のデータの比較は
シート2のA列の番号をCOUNTIFで数えて、シート1のAC列(データが入っていない列)に表示させています。
1、3、0などと表示されているのを見ながら、列の追加など行っています。
なんだかややこしくてすみません…。
583 :
582 :2010/06/22(火) 14:14:30
やってることは、 A 前月分のシートから「6列目に"a"がないデータを削除すること B 前月分のシートに「今月分で初めて出現したデータ」を最下行に追加すること C 1列目の内容でソート(Bの初出データ行が最下行から移動) だけではないですか? だったら、月毎に役目が変わる方法じゃなくて、 前月分のシート1を「マスタ」とし、今月分のシートから初出データ行を持ってくる 方が簡単な気がします。違ってたらゴメン。
>>471 ,472,558 です。
誰もご存知ない様なので他の掲示板へ再投稿してみたいと思います。
ありがとうございました。m(_ _)m
585 :
名無しさん@そうだ選挙にいこう :2010/06/22(火) 17:20:52
586 :
複乳 :2010/06/22(火) 18:02:48
>>585 右クリック 書式設定 折り返して全体を表示する
587 :
585 :2010/06/22(火) 18:07:47
>>586 ありがとうございます。
できました!!
588 :
名無しさん@そうだ選挙にいこう :2010/06/22(火) 19:49:57
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 C列 D列 前 +200 前 -8 後 -300 前 0 前 +5 後 +800 ↑のような場合に 1.C列が「前」の行のD列の数値の合計 2.C列が「前」の行のD列の数値が入っているセルの数の合計 の式を教えていただけないでしょうか 宜しくお願いします
589 :
名無しさん@そうだ選挙にいこう :2010/06/22(火) 20:03:23
>>588 さんの便乗質問です。
C列 D列
001 +200
002 -8
003 -300
004 0
005 +5
006 +800
C列は商品のロットNo.です。↑のような場合に
どこかのセル2箇所に「001」と「004」とを入力すると
001〜004の範囲のD列の合計をとってくれる方法を(この場合は△108になります)
教えて頂けないでしょうか。
>588 処理対象のセル範囲がC1:D6として =SUMPRODUCT((C1:C6="前")*(D1:D6)) 和 =SUMPRODUCT((C1:C6="前")*(D1:D6<>0)) 0以外の数の件数 >589 処理対象のセル範囲がC1:D6として =SUM(OFFSET(C1,MATCH("001",C1:C6)-1,1):OFFSET(C1,MATCH("004",C1:C6)-1,1))
591 :
名無しさん@そうだ選挙にいこう :2010/06/22(火) 20:31:30
>>589 DSUMであっさりいけました。失礼しました…
592 :
名無しさん@そうだ選挙にいこう :2010/06/22(火) 21:03:22
>>590 ありがとうございます
同じ表で
3.C列が「前」の行のD列の数値で最小値
はどのようになるでしょうか?
MINを使うと思うのですが・・・
取引先からもらったエクセルのファイルで、 セルを参照するのに必ず+を付けてあるんですが、 これって何か意味があるんでしょうか? 例えばセルA1を参照する場合は「=+A1」となっています。
>>593 「=A1」と入れるかわりに「+A1」と入力しても同じ結果になって、
しかもキーボードによっては入力が楽
たぶんそれ作ったのは年配の人か、手間を惜しむためのテクニックを駆使してる人
595 :
名無しさん@そうだ選挙にいこう :2010/06/22(火) 21:37:58
セルに「0001」と入力すると「1」と表示されます。 文字列に指定すると「0001」と表示できますが、数値として機能しません(足し算とか出来ません) 「0001」と表示させて数値として利用出来ませんでしょうか。
596 :
560 :2010/06/22(火) 21:40:02
>>582-583 さん
画像までわざわざ上げてくださって、すみません。
今はファイルを見れないのですが、確かにA〜Cまでの作業をして
「前月分」にはいるけど「今月分」にはいない人の削除をすれば完了する気がします!
前任者から「今月分に前月分の必要な部分を貼って」と言われたので、それに囚われてました。
明日データを確認してみますが、たぶん行けそうです。ありがとうございました。
598 :
複乳 :2010/06/22(火) 21:51:30
>>595 0001がA1セルとすると、
B1=A1*1+2
とすればB1に3と出ると思うが
別に*1しなくても計算できるような気もするガ
599 :
名無しさん@そうだ選挙にいこう :2010/06/22(火) 21:55:37
600 :
597 :2010/06/22(火) 21:59:24
× =MIN(IF(C1:C6="男",D1:D6,"")) 最小値 ○ =MIN(IF(C1:C6="前",D1:D6,"")) 最小値 セル範囲の修正に気をとられてた orz
601 :
名無しさん@そうだ選挙にいこう :2010/06/22(火) 22:01:31
>>595 文字列でも普通に計算できる
ただしすぐ隣のセルは編集すると書式が勝手に文字列に変わることがあるので注意
【1 OSの種類 .】 Windows XP SP3 【2 Excelのバージョン 】 Excel 2003 Alt+F11でVBAのエディタを出したとき、マウスのスクロールボタンで スクロールができません。何が悪いのでしょうか? エクセルの表はスクロールできます。
>>603 いつからスクロールできなくなった?
マウス買い換えた?
もともと出来ない
>VBAのエディタを出したとき、マウスのスクロールボタンでスクロールができません。 これ、意外と陥る罠だよな。自宅のPCだとスクロールするのに 会社のPCだとスクロールしないとか。 で、よくよく調べるとスクロールしないのがデフォで スクロールするのはマウス付属のアプリのおかげだったり。
毎日2回、数値のデーターを記録して、最終的にグラフにするつもりなのですが、 2回のうち1回を、記録し忘れてしまうことがあります。 セルを空白にすると、並べ替えたりするときに都合が悪そうなので、 取り忘れは取り忘れとして記録したいのですが、なんと打ち込めばいいんでしょうか?
608 :
複乳 :2010/06/23(水) 12:21:16
>>607 何入れても都合悪いでしょ
平均でも入れておけばいいnじゃない
体重だな どうでもいいけど
(´ω`)
611 :
593 :2010/06/23(水) 12:31:24
>>594 ありがとうございます。
おっしゃるとおり年配の方が作ったものです。
確かに=より+の方が入力楽ですね。
【1 OSの種類 .】 WindowsVista 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 条件付書式、3つ以上、etc... 現在数列、数百行に渡ってデータが入っている表があるのですが、 それらのデータを基準値からどれだけ乖離しているかでセルの色を変更するか、 フォントの書式を変えたいと思っています 条件付書式での対応を考えたのですが、求められている仕様が「5段階」の変化で困っています 基準値+10、基準値+5、素のまま、基準値-5、基準値-10といった5段階です 基準値の入力された列を追加して差分を出して条件付書式で変化させようと思いましたが、 条件付書式では3つまでしか条件が設定できないので頓挫してしまいました 何か良い解決方法はないでしょうか?
613 :
複乳 :2010/06/23(水) 14:26:06
>>612 基準値を100として、
B1=REPT("■",IF(A1>110,5,IF(A1<90,1,(A1-90)/5+1)))
とか。110以上だと5つの"■"が表示される
関数の意味が分からなければifで"■"の数を分岐させてもいいかも
逆に5つのセルに条件付書式を設定して変化させるか(B1-F1のセル)
後は手っ取り早くVBAかね〜
>>612 Excel2010に乗り換える
条件がいくつでも設定できる
Excel2007使用者ですが良いクップボード拡張ソフトはないでしょうか? Office純正のクップボードはFIFOで古いものが消されます。 Vectorにあるフリーの物はテキストだけだったり クリックで直接貼り付けられなかったり不便です。 (探し方が足りないのかもしれませんが。) よろしくお願いします。
>>612 別のセルに「”データ”−”基準値”」を作成し
データの書式でプラスを青、マイナスを赤とかにし
データの条件付書式で他の2つの条件をつける
>>615 クップボードはクリップボードの間違いです。
>>608 >>609 >>607 ですがありがとうございます。データなし用の便利なんかってやっぱりないんですか・・
ちなみに体重じゃないです、日経先物が日中に高値と安値をつけた時刻です。
>>615 専用スレがあったのでそちらで聞きます。
>>618 グラフだけであれば、空白があっても補間できるよ
621 :
名無しさん@そうだ選挙にいこう :2010/06/23(水) 22:18:33
申し訳ないんですがROMってるひまがなくて、 SUMの足し算で40近くのセルを自動計算したいのですが 30が上限の方法しかわからず困ってます。 別の方法がもしあるのでしたらお教えください。
>>621 バラバラの位置にあるセルなの?
連続しているんであれば、
=SUM(A1:A10)
=SUM(A1:H1)
のように書けるんだけど
=sum(a1,b2,c3,・・・)+sum(a5,b6,c7,・・・)
626 :
621 :2010/06/24(木) 06:52:51
皆様ありがとうございます 最近頭が固く、そういう方法が浮かばなくなってまいりました(汗 『算数博士』返上です。 丁寧なご返答にも感動しつつ、感謝 ガンバレ NIPPON!
just basic
628 :
名無しさん@そうだ選挙にいこう :2010/06/24(木) 13:53:17
【1 OSの種類 .】 Windows7 32bit 【2 Excelのバージョン 】 Excel2003、Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Excel2010 改ページ 印刷 A122、CV1までのセルを使った帳票データを印刷する場合での質問です。 そのデータは行と列の高さや幅を全体的に小さくしてあります。(高さ6、幅1) ページ設定で「次のページ数に合わせて印刷」にチェックを入れていれば、Excel2003では特に問題なくA4横ピッタリに印刷できていました。 しかし、Excel2010にバージョンアップしていざ印刷しようとするとA4で20枚というとんでもない枚数になってしまいます。 印刷メニュー内の設定で「シートを1ページに印刷」を選ぶとプレビューではきちんと収まっているのですが、いざ印刷が始まるとA4の真ん中にデータの一部しか印刷されていないものが20枚出てきます。 印刷が終わってからそのデータを見ると、改ページ表示がめちゃくちゃになり20分割されています。 改ページ位置の修正も効かず、泣く泣く2003で印刷する羽目になっています。 2010でうまく印刷するにはどうすればいいのでしょうか。
629 :
名無しさん@そうだ選挙にいこう :2010/06/24(木) 15:13:21
>>628 2010は知らないけど
ページ設定の拡大縮小、水平垂直位置、余白・・かなぁ
>>626 『算数博士』返上…か。
オレは
『エロ大魔王』返上でつ。w
【1 OSの種類 .】 Windows95 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 ペイント スクリーンショットとbmpファイル出力とセルドット化できるブックを作ったんですが あと何か機能をつけるとしたら何が必要ですかね
シベリアよりレス代行お願いしています。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 オートフィル 一方のみ 同じ A1*B1 A2*B2 検索キーワードでどうひいていいかわからず、詰まってしまいました。 B3に適当な数値が入れてあり、その下の表に F6*B3 F7*B3 F8*B3 ・ ・ ・ と、Fの数値にひたすらB3の数値をかける式を入れている列があります。 いちいち手打ちするのが面倒なので、オートフィルでやろうとしたところ、 F6*B3 F7*B4 F8*B5 ・ ・ ・ となってしまいます。どうすれば上のように片方だけの数値を変化させてオートフィルさせることができますか?
>>634 ありがとうございます!これで作業がかなり楽になりました。
参考サイトも明日(今日?)ゆっくり見て勉強させていただきます。
just basic
637 :
名無しさん@そうだ選挙にいこう :2010/06/25(金) 02:49:50
通常 「A」と入力すると「A 1101」 「B」と入力すると「A 1102」と表示されるように辞書登録しており この後、各数字を色変更するのですが 「A」と入力すると「A 1101」が表示された際 数字のみを自動的に所定の色に変更してくれる方法は無いですか?
638 :
637訂正 :2010/06/25(金) 05:17:26
エクセル2007を使用 通常 「A」と入力すると「A 1101」 「B」と入力すると「A 1102」と表示されるように辞書登録しており この後、各数字を色変更するのですが 「A」と入力すると「A 1101」が表示された際 数字のみを自動的に所定の色に変更してくれる方法は無いですか? 後、特定のセルに何らかの数字が入力された場合のみ 色変更するにはどうしたらいいですか?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 ユーザーフォーム セルをクリックするとユーザーフォームが開きコマンドボタンに登録されている文字が入力され隣のセルに移動るようになっているのですが、特定の文字だけ入力時にフォントのサイズが変わるようにしたいのですが、よろしくお願いいたします。
640 :
複乳 :2010/06/25(金) 09:49:57
>>637 Private Sub Worksheet_Change(ByVal Target As Range)
For i = 1 To Len(Target)
If IsNumeric(Mid(Target, i, 1)) Then
Target.Characters(Start:=i, Length:=1).Font.ColorIndex = 3 '3は赤色
End If
Next
End Sub
>>638 Sub a()
Dim unko
unko = "うんこ" '変えたい文字
Dim unkolen
unkolen = Len(unko)
If Selection.Row = 1 And Selection.Column = 1 Then 'とりあえずA1セル限定
For i = 1 To Len(Cells(1, 1))
If Mid(Cells(1, 1).Value, i, unkolen) = unko Then
ActiveCell.Characters(Start:=i, Length:=unkolen).Font.Size = 15 'フォントサイズ
End If
Next
End If
End Sub
641 :
複乳 :2010/06/25(金) 11:09:31
642 :
名無しさん@そうだ選挙にいこう :2010/06/25(金) 12:04:09
>If Mid(Cells(1, 1).Value, i, unkolen) = unko Then ひでぇw
643 :
642 :2010/06/25(金) 12:08:17
>639,複乳 つInstr
644 :
複乳 :2010/06/25(金) 12:41:58
645 :
複乳 :2010/06/25(金) 12:51:44
こんな感じかねぇ。でも文字列が二箇所以上にあるとだめなんだよなぁ
>>639 Sub a()
Dim unko
unko = "うんこ" '変えたい文字
Dim unkolen
unkolen = Len(unko)
tempstr = InStr(ActiveCell.Value, unko)
If tempstr Then
ActiveCell.Characters(Start:=tempstr, Length:=unkolen).Font.Size = 15 'フォントサイズ
End If
End Sub
>645 >でも文字列が二箇所以上にあるとだめなんだよなぁ 応用もできんのか? 半年ROMってろ。
647 :
名無しさん@そうだ選挙にいこう :2010/06/25(金) 22:29:51
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 O列 P列 5 V 3 10 V 8 V 4 6 1 V 15 7 V ↑のような場合 *P列に「V」がある行のO列の数値で最大の数値 を求める関数教えていただけないでしょうか 宜しくお願いします
>>647 数値がプラスの値だけなら=MAX((P1:P9="V")*O1:O9)の配列数式。
分からなければ作業列のQ1:Q9に=IF(P1="V",O1,"")として=MAX(Q1:Q9)
見出しありならDMAXでもできる。
B3セルに入れた文字をファイル名にして保存するんだけど、 / とか : を使う人がいて、保存できないと騒ぐ人がいます。 また、海外に送るので半角英数字にしたいんですが、 全角のアルファベットを使う人がいます。 これらが入ってたら「ダメぽ」ってメッセージを出すには どうすればいいですか?
651 :
647 :2010/06/25(金) 23:15:42
>>648 ありがとうございます。
この表は下にどんどん追加されるものなのですが
常にMAXが更新されるようにするにはどうすれば良いでしょうか?
652 :
647 :2010/06/25(金) 23:35:13
自己解決しました。ありがとうございました
>>650 If Range("B3").Value Like "*[!A-Za-z0-9]*" Then
MsgBox "ダメぽ"
End If
>650 =IF(B3=ASC(B3),"OK","NG")
>647,651 O1:O9 を O1:O256 とか O1:O65535 などとする P1:P9 も同様 Excel2007からは O:O のように列全体も指定できるそうだけど、扱うセル数が極端に多くなるからやめといた方が吉。
656 :
650 :2010/06/26(土) 00:40:39
>>653 うぉーすごいぃぃ、
ありがとうです。
"*[!A-Za-z0-9]*"って、英数字だったらOKってこと?
!はどんな意味が?
>>645 / とか : だとダメですた。
653氏のを使わせてもらいます。
>>650 Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
ここでStrConv関数で
if 変換前<>変換後 then
msgbox "ふじこ"
かな。
658 :
653 :2010/06/26(土) 00:57:58
>>656 詳細はHelpの Like演算子をみてね
ちなみに ! はそれ以外だったらってことで
今回は英数字(A-Za-z0-9)※以外※が何処かにあると
メッセージを表示
659 :
名無しさん@そうだ選挙にいこう :2010/06/26(土) 06:11:50
エクセル2007を使用。 @ 1日目(D35〜51 N35〜50) 2日目(X35〜51 AH35〜50) 10日目(GB35〜51 GL35〜50) 11日目(D86〜102 N86〜101) 12日目(X86〜102 AH86〜101) 20日目(GB86〜102 GL86〜101) 21日目(D137〜153 N137〜152) 22日目(X137〜153 AH137〜152) 31日目(GV137〜153 HF137〜152) 上記の各セルに数字が含まれると 自動的に 数字のみを 青に色変更させる。 例えば D35「A 1101」 D36「C 1103」 N35「A 1101」 N36「X」だとすれば 1101 1103の部分だけ色変更させるってことです。 A そして数字の色変更した数を、 1日目(N51) 2日目(X51) 10日目(GL51)・・・31日目(HF153)の場所に 自動的表示。 例えば 1日目がD35「A 1101」 D36「C 1103」 N35「A 1101」 N36「X」だとすれば 数字のあるとこだけ抽出して、1日目のN51は3というわけ。
660 :
名無しさん@そうだ選挙にいこう :2010/06/26(土) 06:12:45
B 1日目(E35〜51 O35〜50) 2日目(Y35〜51 AI35〜50) 10日目(GC35〜51 GM35〜50) 11日目(E86〜102 O86〜101) 12日目(Y86〜102 AI86〜101) 20日目(GC86〜102 GM86〜101) 21日目(E137〜153 O137〜152) 22日目(Y137〜153 AI137〜152) 31日目(GW137〜153 HG137〜152) に一番上から連続で数字を入力していき 2つ以上続けて数字が入力された場合、数字を最後に入力した次のセルに自動でオートシェルし、その数字を色変更させる。 一番上からの数字が連続です 1つだけの場合、オートシェルは発動させないが、自動で色変更はさせる。 間が開いた数字はオートシェルも色変更もさせない。 例えばE35=5000 E36=2000 E37=4000だとするなら 自動的にE38に11000と表示され、その11000のセルは自動的に色変更される。 O35=8000 O36=7000 O40=5000ならば 連続した数字のO35・O36の次のセルであるO37には 自動的に15000と表示され、色変更も自動でされるが 間が開いているO40=5000の数字は 5000そのままで、色変更もされない。
661 :
名無しさん@そうだ選挙にいこう :2010/06/26(土) 06:14:44
C 1日目(O51) 2日目(Y51) 10日目(GM51)・・・31日目(HG153)の場所に @で数字が書いてある右横の数字だけ合計し 数字が書かれてない右横の数字はマイナスしたものを自動表示にする。 例えば D35「A 1101」 E35「5000」 D36「C 1103」 E36「2000」 D37「D 1104」 E37「4000」 N35「A 1101」O35「2000」 N36「X」 O36「10000」 N40「2101」 O40「500」だとするなら 051の数字は5000+2000+4000+2000+500-10000となる。
>>647 ,651
どのように自己解決したか知らんが、配列数式で
>>655 みたいに範囲を広く取るのは重くなるのであまり良くないが
DMAXなら範囲を広くとってもほとんど重くならない。
O列の見出しが金額で、P列の見出しが旗で条件がR1:R2で
R1に旗、R2にVと書いてあれば
=DMAX(O:P,"金額",R1:R2)
=DMAX(O:P,O1,R1:R2)
など。
663 :
名無しさん@そうだ選挙にいこう :2010/06/26(土) 18:32:26
EXCELのブックを開いたときに中身が何もない状態になる。 枠だけは見えるけど、真ん中がPCのデスクトップと同じ柄になって、 セルも何もないのです。VBAを色々実験していたら、普通に開かなくなりました。 どうしたらいいでしょう?説明が下手ですみません。 【1 OSの種類 】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか 】 少し 【4 VBAでの回答の可否】 可
>663 状況がわからないので、いくつかおたずねします。 Q1 ブックが開いているのは間違いないか? (タイトルバーに Microsoft Excel-Book1 などアクティブなブック名が表示されているか) (プログラムを閉じる × とは別に、ブックを閉じる × は見えるか) Q2 列名や行番号は表示されているか? (すべての行を非表示にすると列名だけ表示されるが行番号は見えなくなる、すべての列を非表示に すると行番号だけ表示されて列名は見えなくなる) Q3 >真ん中がPCのデスクトップと同じ柄 とは、バックのデスクトップの状態が透けて見えるということ? (デスクトップ上のアイコンの並びも見えるのか) Q4 問題は当該ブックだけなのか? 当該ブックを他のPCで開いたときも同じ状況なのか? (他の既存ブックや、新規ブックのときはどうなのか) 答えていただいたからといって自分が適切な回答できるとは思いませんが、詳しい方にはピンとくるかも。
665 :
名無しさん@そうだ選挙にいこう :2010/06/26(土) 19:48:44
>>664 レスありがとうございます。
Q1 ブック名は表示されています。内側の×は表示されていません。
Q2 列名、行番号は表示されていません。
Q3 バックのデスクトップの状態が透けて見えるということです。
デスクトップ上のアイコンの並びも見えます。
Q4 新規ブックむ含め、全てのエクセルが同じ状態です。
ACCESSでVBAを書いているのですが、EXCELもACCESSも一旦閉じて、
再度立ち上げると普通に開くようです。
ACCESSを開いたままでEXCELが開けないと、何かと不自由なので質問してみました。
666 :
名無しさん@そうだ選挙にいこう :2010/06/26(土) 23:09:49
Sub mojiiro2() Dim RE, c Dim myRng As Range Dim myStr As String Dim i As Integer Set RE = CreateObject("VBScript.RegExp") With RE .Pattern = "[0-9]" '----パターンを設定 .IgnoreCase = True .Global = False For Each myRng In Selection For i = 1 To Len(myRng) myStr = Mid(myRng.Value, i, 1) If .Test(myStr) Then With myRng.Characters(Start:=i, Length:=1).Font .ColorIndex = 42 End With End If Next i Next myRng End With Set RE = Nothing End Sub 0-9の半角だけでなく 0−9の全角も変換されるようにしたいのですが どうしたらいいですか? コピペしてきただけなんで、よく判らないんです。
"[0-9,0-9]"でどうかね しらんけど
668 :
名無しさん@そうだ選挙にいこう :2010/06/26(土) 23:18:44
>>667 出来ました
ありがとうございます。
(*'ε`*)チゥ
669 :
666 :2010/06/26(土) 23:41:27
すいません。 .ColorIndex = 42 ってのは、もっと細かく設定できませんか? R49 G134 B155ってのにしたいんです。
670 :
666 :2010/06/26(土) 23:45:38
事故解決しました。
671 :
名無しさん@そうだ選挙にいこう :2010/06/27(日) 19:42:10
【1 OSの種類 】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか 】 少し 【4 VBAでの回答の可否】 可 A列 ・・・ N列 100 56 100 32 100 40 103 69 103 35 104 9 104 35 104 9 104 23 A列に重複した値が複数行(1行だけのもあるかも)まとまってある中で A列が同じの行のN列の値を比較して最小値を調べて隣のP列のセルに○を入れたいです。 例 100→32○ 103→35○ 104→二つの9の隣に○
672 :
671 :2010/06/27(日) 19:43:02
ありゃ、103のところから数字がずれました。。 ゴメンナサイ
>>671 A1からだとして
=IF(MIN(IF(ISERROR(MATCH($A$1:$A$10,A1,0)),10^10,$N$1:$N$10))=N1,"○","")
CTRL+SHIFT+ENTERの同時押しで確定させて式の前後に { }をつける(配列数式)
674 :
名無しさん@そうだ選挙にいこう :2010/06/27(日) 21:20:20
>>673 ご親切にありがとうございます!
これからちょっとやってみます!!!
配列の関数って下にオートフィルしたらがうまくいかないですね。 ぐぐってきます!
677 :
名無しさん@そうだ選挙にいこう :2010/06/27(日) 21:40:12
A1に 2000と入れて、それをB1に反映させる場合は B1に =A1 と入力すれば良いのは分かるのですが B1に 料金合計額(●円)とあって ●のとこにA1を反映させるにはどうしたらいいですか?
678 :
名無しさん@そうだ選挙にいこう :2010/06/27(日) 21:42:32
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 ='950'!$X"INDIRECT($K$12)" あるセルに他のシート(シート名:950)のX列のある行の数値を表示させたいのですが その行の部分のみK12セルでコントロールしたいのですが上記でエラーが出ます どなたか間違い部分をご指摘いただけないでしょうか 宜しくお願いします
>>677 一番簡単なのはセルの表示形式で、ユーザー定義で
料金合計額(0円)
と入れればOK
>>678 =INDIRECT("950!$X"&$K$12)
ってことかい?
682 :
675 :2010/06/27(日) 21:53:59
あれ、なんでだろ? 上の例でA列100の行の間はうまく表示されるんですが、 A列が103の行になった途端、ブランクのまんまなんです。。 でも考え方を教えていただきましたのでこれでなんとかやってみます! ありがとうございました!
>>682 なんとなく、配列数式になっていない予感?
684 :
名無しさん@そうだ選挙にいこう :2010/06/27(日) 21:56:31
685 :
682 :2010/06/27(日) 21:58:45
>>683 そうですかね、数式の両脇に{}つけてるんですけどね。。。
でもやっぱどっかおかしいと思いますので成功するまでやってみますね!
>>682 100行の間はうまくいくのなら
100行を超えるとその数式が破綻する様なものになっているってことだろ
688 :
677 :2010/06/27(日) 22:11:54
ありがとうございます。 出来ました。 もう1つ質問なのですが 金額(数字)を入れた場合だけ、別のセルで合計額を反映して 金額(数字)を入れない場合は、無表記にすることって出来ますか? A1(2000) B1(料金合計額(2000円) A2(1000) B2(料金合計額(3000円) A3 B3(料金合計額)・・・金額が入力されない時は合計額を表示させない。 A4(2000) B4料(金合計額(5000円) って出来ますか?
あ、下にコピーって書くの忘れた
=IF(A1="","",SUM()) 俺はわかりやすいからこう書くようにしてる
692 :
682 :2010/06/27(日) 22:23:45
>>687 ありがとうございます!出来ました!
私の例の書き方が10行しかなくて教えて頂いた下の数式の10の値を本来の最後の行の値にしたら
出来ました!どうもみなさん色々ありがとうございました!助かりました!
=IF(MIN(IF(ISERROR(MATCH($A$1:$A$10,A1,0)),10^10,$N$1:$N$10))=N1,"○","")
いまエクセル見られないから検証できないけど、これでよくない? =IF(MIN(IF(COUNTIF($A$:$A$,A1),$N$:$N$,10^10))=N1,"○","")
694 :
名無しさん@そうだ選挙にいこう :2010/06/27(日) 23:51:22
初心者ですが、質問です。 例えば a 2 3 8 1 14 b 1 5 9 1 16 c 2 3 1 2 8 x となっていて、xでこの合計を出すためにはどのような式なりますか?
全部を範囲指定すりゃいいじゃん SUM(A1:E3)とか
696 :
688 :2010/06/28(月) 01:09:51
=IF(H31>=1,"料金 (合計"&H31/1000&"千円)","料金") =IF(AD31>=1,"料金 (合計"&(H31+AD31)/1000&"千円)","料金") =IF(AZ31>=1,"料金 (合計"&(H31+AD31+AZ31)/1000&"千円)","料金") =IF(BV31>=1,"料金 (合計"&(H31+AD31+AZ31+BV31)/1000&"千円)","料金") =IF(BV31>=1,"料金 (合計"&(H31+AD31+AZ31+BV31+CR31)/1000&"千円)","料金") =IF(BV31>=1,"料金 (合計"&(H31+AD31+AZ31+BV31+CR31+DN31)/1000&"千円)","料金") =IF(BV31>=1,"料金 (合計"&(H31+AD31+AZ31+BV31+CR31+DN31+EJ31)/1000&"千円)","料金") =IF(BV31>=1,"料金 (合計"&(H31+AD31+AZ31+BV31+CR31+DN31+EJ31+FF31)/1000&"千円)","料金") =IF(BV31>=1,"料金 (合計"&(H31+AD31+AZ31+BV31+CR31+DN31+EJ31+FF31+GB31)/1000&"千円)","料金") =IF(BV31>=1,"料金 (合計"&(H31+AD31+AZ31+BV31+CR31+DN31+EJ31+FF31+GB31+GX31)/1000&"千円)","料金") としたのですが コード?をもっと短くできる方法は無いですか? これが限界でしょうか?
=IF(AD31>=1,"料金 (合計"&SUM(H$31$:AD31)/1000&"千円)","料金") て感じでどう?
698 :
688 :2010/06/28(月) 01:18:18
>>697 すいません
3つ目の=IF(AZ31>=1,"料金 (合計"&(H31+AD31+AZ31)/1000&"千円)","料金")
だとどうなるのでしょうか?
>>697 の例だと、あまり変らないように見えたので。
>>698 最初のH31だけ絶対参照してるから、オートフィルで勝手にSUMの範囲が伸ばされる
どんなシートにしてるかわからんけど、ちゃんと同じ列に金額を入れてるならこれでできるはず
700 :
688 :2010/06/28(月) 01:25:17
>>699 出来ませんでした。
=IF(AD31>=1,"料金 (合計"&SUM(H31:AD31)/1000&"千円)","料金")
とすれば出来ましたが
何故か、小数点が表示されます。
701 :
688 :2010/06/28(月) 01:53:58
すいません。コードの省略は諦めます。 シート2にシート1の結果を反映させるには どうしたらいいですか? シート1 の最終合計額が10000円で シート2のH31が2000だとするなら、シート2のP1には料金(12千円)と表示させたいんです。
702 :
701 :2010/06/28(月) 02:14:21
=IF(H31>=1,"料金 (合計"&(H31+'シート1'!H31+'シート1'!AD31+'シート1'!AZ31+'シート1'!BV31+'シート1'!CR31+'シート1'!DN31+'シート1'!EJ31+'シート1'!FF31+'シート1'!GB31+'シート1'!GX31)/1000&"千円)","料金") 一応、こうすれば出来ましたが もっとコード?を短くできる方法は無いですか? 無視しないで(´・ω・`)
よくわからん状況になってきたからデータうpしてもらったほうが回答しやすそう
単純に式を短くするアイデア シート1のどこかで合計を出しておいて、それを参照するだけにする
705 :
701 :2010/06/28(月) 02:52:32
707 :
701 :2010/06/28(月) 03:09:18
708 :
701 :2010/06/28(月) 03:19:51
シート1の2つ目を =IF(AD31>=1,"料金 (合計"&SUM($H$31:AD31)/1000&"千円)","料金") としたところ 料金 (合計3.036千円)と表示されます。 .036は不要なんですが消せないんでしょうか?
>>708 何でそうなるのかわからんけど、ROUNDDOWN関数使えば切り捨てできる
桁数は-3でいけるはず
710 :
701 :2010/06/28(月) 03:31:29
>>709 うpしたファイルは、あくまで例で
実際のファイルには他にも数字が記入されてるからでしょうか?
711 :
701 :2010/06/28(月) 03:34:33
>>709 すいません。
実際のファイルには
31と5が料金の横のラインに記入されています。
これが原因かと思われます。
712 :
701 :2010/06/28(月) 03:37:59
件数がいくらであろうと自動的にオートSUMしてくれる方法は無いですか? 3000 2000 5000 と入力したら、オートSUMを押さずとも 自動的に10000と表示され 3000 5000なら 自動的に8000と表示されるみたいな。
>>713 バージョンにもよるけど普通にテーブル使えばいいんじゃね?
>713 つIndirect
>>714 2003ならリスト
集計行が恐ろしく便利
717 :
名無しさん@そうだ選挙にいこう :2010/06/28(月) 21:45:02
719 :
718 :2010/06/28(月) 22:29:07
>718の追加 参考に挙げた例だと検索条件に直接文字列を入れていますが、セルを指定するといいです。 それと、計算式を下へコピーする前に計算範囲を絶対指定に変更する必要があります。 なので、>717の場合だとG18セルに =SUMIF($A$18:$A$25,E18,$C$18:$C$25)と入れて 下へフィルコピーになります。
720 :
名無しさん@そうだ選挙にいこう :2010/06/29(火) 20:49:11
>>718-719 ありがとうございます。
できました(´∀` )
お手数ですが、現在の状態だと常に0が表示されてますが
加算された時だけ数字が表示され
加算されない限り、無表記としたいのですが「
どうしたらいいですか?
プロパティで0を非表示 見た目だけならこれでOK
722 :
名無しさん@そうだ選挙にいこう :2010/06/29(火) 21:07:59
解決できました。 ありがとうございます。
723 :
名無しさん@そうだ選挙にいこう :2010/06/30(水) 12:07:50
教えてください 引用元の帳票が12桁あり VLOOKUPで戻り値を右側6桁で返したいのですが セルの書式設定以外で何か方法ありますでしょうか? 関数の組み合わせで何か宜しくお願いします。
724 :
名無しさん@そうだ選挙にいこう :2010/06/30(水) 12:11:11
725 :
723 :2010/06/30(水) 12:14:31
>>724 有難うございます
具体的にどんな数式になるか
教えていただけると助かります
VLOOKUPのが先なのは判るんですが
726 :
名無しさん@そうだ選挙にいこう :2010/06/30(水) 12:24:29
=right(vlookup(a1,a1:b2,2,true),6) みたいなかんじ
727 :
723 :2010/06/30(水) 12:47:45
728 :
名無しさん@そうだ選挙にいこう :2010/07/01(木) 13:28:14
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2001 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 vlookup 名前 点数 A 100 B 50 C 70 というデータがあって、別のセルに、50点以上の人の名前と点数をリストアップさせるにはどうすればいいですか? vlookupは文字で検索ですが、ある数値以上で名前を表示させるにはどうすればいいでしょうか?
点数で並べ替えじゃダメ?
まずある点数以上に印つけてそれを抜き出す。
731 :
名無しさん@そうだ選挙にいこう :2010/07/01(木) 16:48:37
=173 → 172 つまりイコールを消すということなんですが これをするにはどうすればいいのですか?
733 :
複乳 :2010/07/01(木) 17:44:21
>>728 オートフィルタ
またはC2=if(b2>=50,b2,"")
のようにすれば50以上のみ表示される
>>731 置換(Ctrl+H)
734 :
名無しさん@そうだ選挙にいこう :2010/07/01(木) 18:04:27
>>728 別セルに抽出するならフィルタオプションの設定な。
検索条件範囲を
点数
>=50
として指定した範囲に抽出すればよい。
736 :
名無しさん@そうだ選挙にいこう :2010/07/01(木) 20:41:44
体重を折れ線グラフで表示して、 毎日データが追加される度に 一々データを選択せずに グラフが伸びていくようにするには どうすればよいのでしょうか?
738 :
名無しさん@そうだ選挙にいこう :2010/07/01(木) 21:34:28
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 「0701」という別のシートを参照したいのですが以下の場合どうすれば良いでしょうか? A列 B列 C列 D列 E列 ='0701'!$A$1 ='0701'!$A$2 ='0701'!$A$3 ='0701'!$A$4 ='0701'!$A$5 結果的には↑これと同じことをしたいのですが(A列1行目には「0701」と表示されています) これでは「0702」「0703」と続くたびにコピーして「0701」→「0702」と修正せねばなりません そこでB列以降の「0701」部分にA1の数値を参照するような関数を書きたいのですが どのように書けば良いでしょうか? 宜しくお願いします。
740 :
名無しさん@そうだ選挙にいこう :2010/07/02(金) 02:11:57
ちょっと変則的なのですが A3にA2-B1、B3にB2-C1、C3にD2-E1、 D3にE2-F1、E3にG2-H1、F3にH2-I1・・・ といった計算をさせたいのですが、 ドラッグしてフィルすることはできないでしょうか?
できない
742 :
名無しさん@そうだ選挙にいこう :2010/07/02(金) 12:26:27
【1 OSの種類 .】 WindowsXP SP3 【2 Excelのバージョン 】 Excel2007 SP2 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Excel2007 アドイン タブ 質問 自前のツールバーをアドインから追加した場合、 アドインタブに表示されると認識しています。 本日から何故か、アドインタブ自体が 表示されなくなりました。 診断プログラムで修復しても、アドインを再追加しても オフィスを再インストールしてもアドインタブは表示されません。 ググっても有効な回答はありませんでした。 アドインタブの復活方法を教えてください。
743 :
複乳 :2010/07/02(金) 13:06:44
>>738 =INDIRECT("'"&A1&"'!a1",1)
で0701シートのA1
=INDIRECT("'"&$A$1&"'!a"&COLUMN(),1)
で列番号を組み合わせて完成
>>740 出来るぞ
A3=INDIRECT("r2c"&A4,0)-INDIRECT("r1c"&A4+1,0)
A4=1
A5=IF(MOD(A4+1,3)=0,A4+2,A4+1)
>>741 カワイソ・・
744 :
742 :2010/07/02(金) 15:44:56
自己解決 エクセルのレジストリを削除したら直りました。 ただ、どこが悪かったかは不明。 削除前後で比較したんですけどね…
745 :
738 :2010/07/02(金) 15:53:59
>740 列名(列番号):計算対象1の列(列番号):計算対象2の列(列番号) A(1) :A(1) :B(2) B(2) :B(2) :C(3) C(3) :D(4) :E(5) D(4) :E(5) :F(6) E(5) :G(7) :H(8) F(6) :H(8) :I(9) 規則性を見つけられるかどうかがミソ。 Open.Office.orgのCalcで試してみたら、 =OFFSET(A3;-1;INT((COLUMN()-1)/2))-OFFSET(A3;-2;INT((COLUMN()-1)/2)+1) でうまくいったので、 Excelなら ; を , に置き換えて =OFFSET(A3,-1,INT((COLUMN()-1)/2))-OFFSET(A3,-2,INT((COLUMN()-1)/2)+1) 右へフィルコピー でうまくいくのでは?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000、2002、2003 マクロで、ボタンをクリックしたら社内LANで繋がってるサーバに 書き込むようにしてますが、ここ最近、サーバの不調で 書き込めないときがあります。 このようなときは、個人のPCに書き込むようにしたいのですが、 書き込めないエラーを得るにはどう書けばいいですか?
>>747 On Errorでトラップすればいいんだけど、鯖の不調はあらゆる業務に影響するだろ。
さっさと鯖缶に連絡して直してもらえ。
>>748 On Error GoTo エラー って書いてるんですが、これだと全てのエラーに
反応してしまいます。書き込み時のエラーだけを得たいんですが・・・
サーバの問題は既に本社へ要請中ですが、対策しておきたいので。
>>749 書き込みの直前でOn Error設定して、直後で解除。
っていうか、そんなにエラーがあちこちで出るようなプログラム作るなよ…
>っていうか、そんなにエラーがあちこちで出るようなプログラム作るなよ… それが出来たらここには来ないだろうなw
752 :
複乳 :2010/07/03(土) 01:10:56
Err.Number vba
でぐぐれといいたいが、まずは
>>750 他のエラーで同様の処理したりすると収集がつかなくなるぞ
プログラミングが原因じゃないエラーだってあるだろうに・・
>>753 そういうのは事前に予測してあらかじめ処理に組み込んでおくもんだ
できないのはプログラマーとしての経験値が低い
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 excel2007 グラフ 横軸 X軸 設定 エクセルのグラフで横軸の設定を0,1,2,3…と書かれている範囲を設定しました。 その横に書いてある数値をデータの範囲としました。この時点でグラフにかかれているのは一つの折れ線グラフです。 このシートをコピーするとグラフが0,1,2,3…の数値の折れ線グラフと、その横にかいてある数値の折れ線グラフの二つに分かれてしまいます。 なにか設定がオカシイところがあるのでしょうか? やりたいこととしては、X軸を0から始める折れ線グラフを一つ作るシートを作り、 そのシートをテンプレにして、コピーして使って行きたいと考えています。 こうしたほうが楽などアドバイスして頂ければ幸いです。 宜しくお願い致します。
>755 X軸は基本「文字列」にしておくべきものです(自分で項目、系列を指定する場合を除く) excelは文字列の並びを項目、数値の並びをグラフデータとみなすからです。 数値だけのデータが2組あれば、最初は2組のグラフができます。 このスレの>172,194が参考になるかと。
>>756 2003だと何故かできたのですが、
回答のおかげで2007でもできました。
半日悩んでいた問題が解決し気持ちよく作業にはいれます。
本当にありがとうございました。
カットアンドペーストでセルの内容を移動した場合、そのセルを参照している計算式が勝手に変更されますよね。 これをしないようにしたいのですが、方法はないでしょうか? Excel2003(または2000)です。
数字を全部打ち込み終わったんですが、一番たくさん出てくる数字順に並べ替えたいのですが、 どんな言葉でググったらいいでしょうか?
>758 手間だけどコピペして消すしかない。 >760 絶対参照でも変わるよ。
>759 A列がデータとして作業列に =COUNTIF(A:A,A1) 作業列をキーに降順並び替え
>>759 ですが、みなさん丁寧にありがとうございました。
おかげさまで無事解決しました。が、出てくる数字があまりダブっていなくて・・・
今度は散布図のグラフに挑戦中です。
766 :
758 :2010/07/03(土) 19:13:26
皆様レスありがとうございます。 そうですか、対処法はなしですか。 開発者は親切のつもりでやってる仕様なんでしょうが、場合によっては余計なお世話になることが分からないんですかね・・・。 オンオフ切り替えできればいいのに。 とりあえず皆様どうもありがとうございました。
>>769 おおおおお!!!
目盛りの上でクリックすると開くものがあったとは知りませんで、
グラフの真上で一生懸命やっては開いて上から順番に見ては・・・繰り返していました。
(_ _ )
ヽノ) ありがとうございました!!
ll
772 :
名無しさん@そうだ選挙にいこう :2010/07/03(土) 23:40:08
わたしは聞いておるのだ、Excel2003が入ってるPCにExcel2007も追加インストールして共存できるのかと。
そうですか
ぐぐ
775 :
772 :2010/07/04(日) 00:56:02
なにがそうですかだ、このやろう わたしはね、物事を客観的に表現できる あなたとは違うんです
>>772 できるけどしないほうがいい。やり方は
エクセル 2003 2007 共存
辺りでググれ
個人的には2007にしてメニューバーだけ2003にするのがいいと思うぞ
777 :
名無しさん@そうだ選挙にいこう :2010/07/04(日) 04:32:12
セルの大きさの自動調整のことで質問です。 人は境界をダブルクリックすると調度いいサイズになると言う。 でもならないんです。 なぜですか? してるのにセル内の語句が2行のままで1行にならないし困るんです。
>>777 そういう時は手動で一行になるように一度大きく広げてから境界をダブルクリック
うちは2003と2007の共存で困った経験なんか一度もないのに、どうしてみんなやめろって言うんだろう?
>>779 ・スキルが高くて問題が起こっても一瞬で解決している
・頭が弱くて問題が起こったことに気づいてない
・そもそも共存する必要性があるかどうか
俺もなにか問題が起こった記憶があるが、忘れた
781 :
名無しさん@そうだ選挙にいこう :2010/07/04(日) 17:22:44
こんにちは! ↓みたいなBOMデータを番号で並び替えすると1.10が1.1のあとにきてしまうのですが1.9のあとにくるようにするにはどうすればいいですか? 番号 部品名 1.1 部品A 1.2 部品B | 1.9 部品J 1.10 部品K 1.11 部品L 1.1〜1.9を1.01みたいに0を追加すれば並べ替えしてくれるのですが部品表でそんな表記みたことないのでEXCELでなにかしらの設定あるんですかね?
783 :
781 :2010/07/04(日) 17:36:13
>>782 いや番号が数値になっているからこそ、こういう問題が起こっていると思うが
あ、わるい勘違い 1と点の後も2桁の数字に解釈して欲しいのね 通常は無理 オプションのユーザー設定リストに入れるか 数値の前と後ろを別のセルに入れるとか
後全角で入れるなどして文字列と判断させるとその順に並ぶのかな? でもちょっとセル内を弄ると数値になったりして面倒なことになると思う
そのままじゃむり。 横に1.1を1.01に変換したセルをつくってそこで並び替え。
787 :
名無しさん@そうだ選挙にいこう :2010/07/04(日) 18:21:17
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 はい・いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 条件付書式 マイナス 次の値以下 質問させてください。 A5の数値がB4より少なかった場合、A5のセルを赤地に変えるということをやりたいのですが、 これは「条件付き書式」という機能で「数式が」という選択をしたあとに、どのような数式を入れたらいいかわかりません。 また、同様の書式を4の行の全てのセルに対して設定したい場合、セル一つ一つ設定せずに 一度にまとめて設定したい場合、どのような操作をすればよいのでしょうか? 詳しい方いらっしゃればご教示お願いいたします。
A5に =(A5<B4) といれる 複数のセルに設定したいときは、範囲を選択してから同様に
>>787 こんな感じかね
=AND(A5<B4,A5<>"")
後、4の行すべて?5行目じゃなくて?5行目をB4と比べたい時は
=AND(A5<$B$4,A5<>"")
みたいな感じ。
790 :
名無しさん@そうだ選挙にいこう :2010/07/04(日) 18:48:46
ご回答ありがとうございます。 全てのセルに対して設定したいのはまったく同じ条件ではなくて、 A5の横のB5に対しては=(B5<C4)、C5に対しては=(C5<D4)と 一つづつずらして設定したいのです。 言葉足らずですみません。
>>790 じゃあ、B5で設定したセルをコピー→他のセルに形式を選択して貼りつけで、「書式」を
>>790 絶対参照で指定しなければ、隣のセルを参照するように変換される
>>792 カッコないと見づらいので
794 :
787 :2010/07/04(日) 19:07:04
>>789 その通りです、5行目でした・・・
皆様レスありがとうございました。
今試行中ですが、
おかげさまでうまく設定できそうです。
ありがとうございました。
795 :
名無しさん@そうだ選挙にいこう :2010/07/05(月) 00:39:53
エクセルのファイルへアクセスした日時を見ることってできますか? プロパティのアクセス日時ではなく履歴(ログ)的なものが見たいです。
悪さですか、そうですか
無理
>>795 やろうと思えばできるけど、いろいろと小細工が必要。
ファイルサーバ上にあるなら、ファイルサーバのアクセスログとか見れ。
そのファイルだけ…ていうなら、バッチファイル(時刻をどこかに
記録させてからExcelを開く)をひとつ作って、ソレ使えと徹底。
どうしても Excel でやりたいなら、ファイルオープン時にマクロで
どっかにオープン時刻を書き出したりとかしれ。
もっとも、マクロでやると無効化できるから知識あるヤツには無駄。
無効化されない方法(署名)もあるが、ファイルの更新が大変になる。
ファイルの読み書きを監視するフリーウェアとかあるよ
800 :
名無しさん@そうだ選挙にいこう :2010/07/05(月) 18:33:55
エクセル2003のVBA、カラーインデックスについて教えてください。 1は黒、2は白、3は赤と決まっているようですが、これ暗記しないとだめなのでしょうか? この番号は、この色だってわかる方法がありましたらお教えください。エクセル単体だけで
番号のかわりにVBの定数を記述するのおk 黒 vbBlack 赤 vbRed 緑 vbGreen 黄 vbYellow 青 vbBlue マゼンタ vbMagenta シアン vbCyan 白 vbWhite
>>801 >>802 ありがとうございます。
やはりエクセルのヘルプ等で調べることはできないということでしょうか?
ちょっと試験があるので、色の番号まで暗記するのは大変だなあと思いまして・・・
>803 ColorIndexの番号と色の暗記のテストする学校or資格試験なぞ、やめてしまえ
色番号を覚える必要性が分からない。先生の頭がおかしすぎる
あ、あと、少なくとも2010ではColorIndex番号はヘルプで調べられる
マクロの記録で好きな色選んで、その一文だけコピペするってのは?
>>800 どこにどの色があるかいちいち確認したくないってことでしょ?
書き出しておけばOK!
colorindexは色を変更できるので場所以外意味がないよ
例えば、エクセルのテストがあってそれで表を作るとする そのとき欲しい色がどこにあるのかすぐに分かると便利って事でしょ? 色そのものの問題が出るということではないはず みなさん勘違いしすぎ
例えば、エクセルのテストがあってそれで表を作るとする そのとき欲しい色がどこにあるのかすぐに分かると便利って事じゃない? 色そのものの問題が出るとは書かれていない みなさん決めつけすぎ こうなら正解かも
813 :
名無しさん@そうだ選挙にいこう :2010/07/06(火) 01:40:14
質問です。2007です。 競馬なので恐縮でなのですが、下記のデータが数万行入力してあります。 A列からD列は今回、E列からH列が前走のデータです。 C列の馬の前走のデータがE列からG列になります。 A列日付、B列場所、C列馬名、D列指数、 E列日付、F列場所、G列馬名、H列前走の指数 H列には何のデータも入っていないので、抽出して入力したいと思っています。 H列に下記のように入力したら、計算をするのにかなり時間を要してしまいました。 SUMPRODUCT((A:A=E)*(B:B=F)*(C:C=G),D:D) 何か他に適切なやり方はあるでしょうか? 前走は走っていない馬もいるのでE列、F列、G列には空白になっている所があります。 どなたか宜しくお願いします。
>>813 ちょっとサンプルのデータをどっかに上げてくんない?
20行ぐらい抜き出して
>>813 空白のH列を特定したいなら、オートフィルターではだめ?
いまいち何が目的なのかはっきりわからん
817 :
名無しさん@そうだ選挙にいこう :2010/07/06(火) 08:47:19
>>816 >>オートフィルターではだめ?
そんな簡単に出来たら質問してません。
>>いまいち何が目的なのかはっきりわからん
そんなことは説明する必要は無いと思います。
分からないならレスしないでください。
818 :
名無しさん@そうだ選挙にいこう :2010/07/06(火) 10:02:25
819 :
名無しさん@そうだ選挙にいこう :2010/07/06(火) 10:10:53
私でもないですよ。
なりすましかよ SUMPRODUCT使うくらいだからDQNなのは仕方ないと思ったが違ったか
821 :
名無しさん@そうだ選挙にいこう :2010/07/06(火) 11:10:11
>>814 A列 B列 C列 D列 E列 F列 G列
1 100630 数学 田中 70 100512 英語
2 100621 英語 吉田 85 100601 国語
3 100512 英語 田中 90
上記のようにA列日付、B列科目、C列名前、D列点数、E列日付、F列科目が入力されてます。
G列は点数なのですが空白になっているので、A〜D列から抽出したいと思います。
数式はG列に打ち込みます。E〜G列はC列の人の前回のデーターです。
前回にテストを受けたとは限らないので、3行のようにE〜G列が空白の部分があります。
例えばG列1行には90が入ります。
822 :
名無しさん@そうだ選挙にいこう :2010/07/06(火) 11:19:06
お前らって何も知らないわりに偉そうだよな。 と言っても、mixiもゆとりが入って来てからは会話が成り立たなくなったが。
>>821 一番わかりやすいのは、作業列に日付と科目を合成したデータを入れてしまうこと。
X列 ← A列+B列
Y列 ← E列+F列
これで普通にLOOKUPが使えるようになる。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 (ただし、同じデータを色々なパソコンでいじっていたためゴチャゴチャになっているのかも?) 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 EXCEL CTRLを押さないと更新されない SUM(A1,B1)等の数式の入ったセルを、クリック&ドラッグで、ひっぱって SUM(A2,B2) SUM(A3,B3) SUM(A4,B4) のように、一気に作ったときに SUM(A4,B4) の計算後のセルの中身が SUM(A1,B1)と同じ数字になってしまっています。 CTRLボタンを押すとSUM(A4,B4) の数字に直るのですが・・・ CTRLを押さなくても、自動的にSUM(A4,B4) の計算にしてくれる方法は無いでしょうか? 教えていただけると助かります。
825 :
複乳 :2010/07/06(火) 12:10:05
>>824 その作業の名前はオートフィルね
それとは関係無しに自動計算が解除されて手動計算になってると思う
ツール→オプション→計算方法
を自動にチェック。
826 :
824 :2010/07/06(火) 12:16:08
827 :
名無しさん@そうだ選挙にいこう :2010/07/06(火) 12:59:43
>>813 、
>>821 です。
自己解決してしまいました。申し訳ないです。
普通にSUMIFSでやればよかっただけでした。
SUMPRODUCT、MATCH、INDEX関数を使って色々やってましたが、簡単なやり方がありました。
ややこしく考えすぎたようです。
抽出でなく合計でも良かったわけですから。
結局DQNには変わりなかったなw
829 :
名無しさん@そうだ選挙にいこう :2010/07/06(火) 19:47:10
↑ゆとりはこんなのばかりだな。www多発するからすぐ分かる。 馬鹿なわりに他人を中傷してスレを荒らす。 この世代は完全に失敗作。
勝手に特定するお前も同じ スルースルー そんなおれもな
そうだよねw
833 :
名無しさん@そうだ選挙にいこう :2010/07/07(水) 16:03:15
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 EXCEL 並べ換え 一番左側の列に、最初から、1から順に番号が入っていますよね そして、それぞれのセルにも内容を入力したんですけど、この一番 左側の列の最初から入ってある番号の逆順に上からセルを並べ 変えたいんですけど、どうすればよいでしょうか?
834 :
833 :2010/07/07(水) 16:05:10
わかりにくくて、すみません。 つまりすでに入力してあるセルを、行番号降順に並べ換えを したいのですが…
835 :
複乳 :2010/07/07(水) 16:40:50
>>834 別の列に1.2.3...とオートフィルで入力してその列を基準に逆順で並び替え
836 :
名無しさん@そうだ選挙にいこう :2010/07/07(水) 16:53:40
837 :
名無しさん@そうだ選挙にいこう :2010/07/07(水) 21:08:20
重量の比率なんですが、小数点第3位で四捨五入して合計すると100.00になりません。 A列の数字はそのままで、キッチリ100.00となるようにするにはどうすればいいですか? 数値は小数点第2位まで必要です。 A B 52 22.51 =ROUND(A1/$A$6*100,2) 35 15.15 47 20.35 26 11.26 71 30.74 231 100.01
>>837 A列にファイル名 & 行まるごとペーストする
他にも方法はあるとは思いますが 以下はどうですか?
'件のサイトの '転記の With〜End With部分の 改造のみ
With ThisWorkbook.Sheets("Sheet1") '転記
Sh.Rows(i).Copy '対象シートのi行をcopy
.Paste Destination:=.Rows(n) 'n行にPaste
.Cells(n, 1).Insert Shift:=xlToRight 'n行を右に1列シフト
.Cells(n, 1).Value = wb.Name ''n行A列にブック名を入れる
End With
841 :
839 :2010/07/07(水) 22:39:53
補足というか訂正
>>839 だと 書式からなんから全てPasteしてしまうので
値のみをPasteしたければ
.Paste Destination:=.Rows(n)
を
.Rows(n).PasteSpecial Paste:=xlValues
へ変更してね
>>838 四捨五入すると合計は狂う
例えばデータが99.5と0.5の2つで少数点以下四捨五入の場合を考えてみ
99.5→100
. 0.5→ 1
計 →101
こういう場合は合計に対しても比率を求めるようにする。つまり=231/231みたいな数式を書く
え?
表記が四捨五入されるだけで、データはそのまんまじゃない?
842は質問者の意図を理解してない
ROUND関数を使ってるからデータは実際より増えたり減ったりしている だから合計がきっちり100にならない場合が出てくる 書式設定で表示桁数を変えた場合、SUM関数の結果はたいてい100になるが (もちろん演算誤差でならない場合もあるが) 表示された数字をそのまま足しても合計が100にはならないケースが出てくる たとえば印刷された物を誰かが電卓で検算したりするとボロが出る さあどうする
統計だと「丸めにより合計が100にならない場合がある」って注記するのはお約束だけどね 100にするために恣意的に四捨五入のルールを破るほうが問題ある
そんな注記は見たことがない。 つーか、そんな注記が許されるのは、どんな部署だ?
>>849 おまえはなにをいっているんだ。
"100にならない" "統計"でぐぐったら875,000件ヒットしたぞ
合計を合わせる事に重きを置くなら
>>840 みたいに端数をどこかに乗っけるような方法しかないと思う
>>850 もっと多いんじゃね?
俺がやったら155万件だったぞ?
853 :
複乳 :2010/07/08(木) 20:10:58
>>852 括弧でくくるかくくらないかの違い
この件数だとセーフサーチ全員オフだなフヒヒ
>>850 おまえはなにをいっているんだ。
"100にならない" "統計"でぐぐったら875,000件ヒットしたから何?
「統計だと「丸めにより合計が100にならない場合がある」って注記するのはお約束」なんて
注記が許されるのは、どんな部署だ?って聞いてるんだよ。糞ガキ
注記するまでもない些細なことだろ 小数点第2位までしか出してないんだしさ
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel 2003 2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Excel(又はエクセル) パレート図 標準 作成 機能 サポート スレの趣旨とはズレるかもしれませんが・・・ Excelでパレート図を作れない(ウィザードに従えば作れるようにならない)のは何故なんでしょうか? パレート図を作れるソフトがありますが、 複数のPCで使うとなると何かと面倒ですし・・・ Excel開発者の国(アメリカ)ではパレート図が一般的じゃない(?)からなんですかね? 数値軸の最大値=サンプル数に設定し直す方法で対処していますが、 気分的に最大値はキリの良い数字にしたいんです。
累計等を計算してから「2軸上の折れ線と縦棒」を選んで微調整するしかないか
859 :
857 :2010/07/08(木) 22:28:04
訂正です ×【2 Excelのバージョン 】 Excel 2003 2007 ○【2 Excelのバージョン 】 Excel 2000 2003 2007 でした 因みに2003、2007は会社のPCで、2000は自宅のPCです QC検定を受ける羽目になってしまい自宅で練習していたのですが バージョン確認したらExcel2000でした・・・
860 :
名無しさん@そうだ選挙にいこう :2010/07/08(木) 23:00:46
資格と実務はかけ離れていると言われてるけど、QC検定は最たる資格と言えるなw 試験では公式を暗記して電卓で計算っていうのが泣けてくる。
861 :
名無しさん@そうだ選挙にいこう :2010/07/08(木) 23:18:52
>>856 >国によっては国内総生産に統計上の不突合を含むため,内訳の合計は必ずしも100にはならない。
統計だと「丸めにより合計が100にならない場合がある とは意味が違うことに気付け!
アホの相手、ご苦労様ですw
864 :
複乳 :2010/07/09(金) 09:59:45
アホ沈黙?思ったより根性ないなー。特許庁みたいな三流官庁がなんぼのもんじゃー! くらい暴れてくれると思ったのに
>>866 「オブジェクトの選択」アイコンをクリックしてからボタンの周囲をドラッグすると
小さい丸で囲まれるから、そうなった状態でDeleteキーを押す
複数一度に消せるから、たくさんある場合はワークシートの表示倍率を25%に縮小してから消すといい
>>867 「オブジェクトの選択」が見つからず、死ぬほど探しましたが見つかりました。
消せました。
どうもありがとうございました。
>>865 花金だっつーのにまっすぐ帰宅して2ちゃん三昧か?
ま、必死になって該当するホムペを探し当てた努力だけは買ってやるが
おまいの努力な何の意味もねーだろ?
x 努力な o 努力は すまん、寝る
統計で全体を100とするなら、「四捨五入したから100になりません」なんて言い訳は通らんだろ?(jk そんな言い訳をするやつがいたら、融通が利かず、人付き合いも悪く、人間性に問題があるぞ。
花金www アホの為にせっかく用意してくれたのに「意味がねー」って・・・ 読んでも分かんなかったってことかな?
>871 うわぁ〜 天然だったのかw 早く社会に出ろよなっ
>>873 「統計で全体を100とするなら」って読めなかったのかい?
全体を100とする って意味が消防には難しかったかなwww
男の子が19人、オニャノコが21人のクラスでは男48%、女53%で101%になるますo なんも問題ないよ?
ごめんな(´・ω・`) 必死にハァハァいって該当HP探し出したんじゃなくて、 行政計画策定するのが仕事なもんで、 普段から統計書や計画書に但し書き書いてるんだわ… 当然比較用に使うべくかき集めた国や各自治体統計書でも 書かれてるのは知ってるんよ… めんどくせーからついでに言うと、 これ書いておかないとお前みたいなのが 「合計しても100にならないザマス!!ムキイイイーーーー!!」 とか窓口に来る訳ね(´;ω;`) ごめんねごめんね、もう一個先に言っとくよ こういうのって外注だから俺公務員じゃない訳ねw だから「公僕の分際で税金で2ちゃんかよ氏ね!」とかいう与太は無しねw
まあ、仮に3人にアンケートしてA、B、Cの回答を1人ずつしたとする。 そしたら、比率はA、B、C各33%になるわけだ。 合計しても100%にならないから、どこかで調整するとしたらひとつだけ34%にしないと いけない。実際は1/3で3つとも同じなのにひとつだけ突出することになる。 これがはたして正しい表現なんでしょうかねえ。
数学・統計の分野?詳しくはそっちで議論を。 個人的には100%なんかにしなくていいと思うけど。 はるか昔の記憶でも、100%に丸めた記憶がない。
四捨五入で100%にならない、そんなのあたりまえだし だからと、拘るアホへ注意書きを書く、これもあたりまえ しかし、四捨五入しておかしくなった数値を、帳尻を合わせるために更におかしくする これはどうだろ?
>>879 注意書きをする、ってのはそんなに当たり前とは思わないけどなぁ。テレビや雑誌でそんな記述を目にしないからね。特許庁やらのHPだしてきたけど、それが一般的(大多数)とも思えない。
いや、どっちも方向は同じだと思うので、煽りはやめれって事です。
それでこそアホの子
>>877 みたいな場合はひとつだけ34%にしてつじつまを合わせちゃうわけだな?w
なんか話がズレてないか? 元の質問者は、キッチリ100.00にするにはどうしたらいいかってことだったぞ。 なのに、注意書きして100にはならないって・・・ しかも877の例は的を射てないなしw
883 :
名無しさん@そうだ選挙に行こう :2010/07/10(土) 14:43:25
【1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 B5の横のシートを印刷する時に、印刷時に自動でA4の縦で印刷(倍率もA4にあわせて114%で)したいのですが、 デフォルトで設定できる方法はないでしょうか?(他のシートではA4の書類があるため1つのシートだけ個別に設定したい) よろしくお願いします。
B5横をA4縦で印刷するなら縮小しないと横がはみ出すんでは?
>>883 とりあえず印刷設定で印刷時縮小拡大、用紙サイズ指定すればシートごとに適用されるけど
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 セルの塗潰しのコマンドを、 以前のバージョンのようにツールバーから独立させシート上で使いたいのですが、 2010では出来ないのでしょうか?
>>882 なんでも質問者の要望に応えりゃいいってもんじゃないと思うが。
>>890 >840では、-0.01となるから解決してないんじやないか?
>838は、これを機に質問の意味を自分で考えてほしい。四捨五入すれば、少なからずズレがおきるのは当たり前だから、それを少なくしたいのか、ピッタリにしたいのかで、JISで定義している[数値の丸め]を使うか、元の数値すべてを使用するかを自分で判断してほしい。
と言う事で、単純に関数だけでちょちょっとは出来ません。が解答と思います。
長文ごめんなさい。見てたら気になったので、書き込みました。>all
合計が100にはならない。さあどうする (1) 合計が99や101になってもそのまま書く。 (2) 個々のデータをごまかして100になるように調整する。 (3) 合計をごまかして100と書いてしまう。 (4) 四捨五入ではなく、五捨六入してみる。 いずれにしても、注意書きがないとクレームが来るかもね。
まだやってたのかw 全体を100とするなら、どこかで帳尻合わせが必要だろうに。 おまいら全員バカなのか?
>>891 質問の意味を自分で考えてほしいって、お前もバカだなw
キッチリ100.00となるようにするにはどうすればいいですか?って質問なんだから
それに答えりゃいいんだよ。
クロス集計するのに関数で出来ますかと言われて、喜んでホイホイSUMPRODUCTを答えるアホみたいなやつがいるな 「関数は向いてません。ピボットを使いなさい」がより親切な答えなんだよ 何でも質問者の言うことを聞くやつはヴァカ
テレビ局のアンケート調査することあるんだが、われら民団が応援してる政党に少しでも有利になるように帳尻合わせやるぜ? たまにデータ改竄もやるがねw チョッパリって融通が効かないのねwww
>>895 お前>890だろ
お前の理屈だと答え出てないから、お前がキッチリ答えてやれよ。
>>896 出すだけならそれでいいが、ソフト的に作って自動で出したいという事もあるだろ。
作業をしたいわけじゃないってわけだ。
900 :
名無しさん@そうだ選挙に行こう :2010/07/11(日) 13:03:28
【1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 J列 K行 6 V 12 V 3 22 V 8 5 V 19 V 7 V 12 40 V ・ ・ ・ 上記のような行が150行ぐらいあるんですが J列の数値とK列のV表示の関連性を調べたい場合どのようにすれば良いでしょうか? 「J列の数値が○○以上ではVが出にくい」とか 「J列の数値が○○〜○○が一番Vが出やすい」などがわかるような グラフや関数があれば教えていただきたいのですが・・・ 漠然とした質問ですいません
>>899 ピボットはユーザーが使えなくても無問題。
誰かが作ってVBAでピボットを操作するコードを書いてボタンでも押して貰えばよい。
ボタンくらいだれでも押せる。
データソースの変更に名前定義使えばあとは更新だけだから、更新くらいは覚えて貰ってもいいと思うが。
>>901 いきなりVBAを書けってのも乱暴だろ w
>>900 らピボットグラフでも使えばいいんじゃね?
>>902 アホでつか?
更新くらい記録マクロで十分だぞ?
905 :
902 :2010/07/11(日) 13:42:45
>>904 記録マクロなんて忘れてたよ、すまんすまんw
>>898 答えは出てる
848は間違いではないが838の質問に対しする回答としては0点
このスレ釣れすぎて楽しいww
いつまでファビョってるのw
>>861 はもういねーよw
909 :
名無しさん@そうだ選挙に行こう :2010/07/11(日) 17:24:22
E列 4 -9 13 16 -9 -4 9 -18 21 13 上の表があってE列の数値の絶対値の平均を求める関数はどのように書けば良いでしょうか?
>>909 =(SUMIF(E1:E10,">0")-SUMIF(E1:E10,"<0"))/COUNTA(E1:E10)
>>909 =AVERAGE(INDEX(ABS(E1:E10),))
または
=AVERAGE(ABS(E1:E10))
CTRL+SHIFT+ENTERで確定
>>899 Excelはピボット使うためのアプリケーションです。
釣られるお子様が多いので先に言って置く
>>912 に釣られないように
雑談は雑談スレでやってね
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 4ケタのアルファベットがあって、以下の条件で分けるには どうすればいいですか? abcd ...... 全て小文字なら残す ABCD ..... 全て大文字なら残す Abcd ..... 最初が大文字で、他の3文字が全て小文字なら残す aBcd ..... 上記以外なので削除 AbCD ..... 上記以外なので削除 AbCd .... 上記以外なので削除
ま、Excel使う実務でやりたいことはクロス集計なんだよな。 Excel使うやつには2種類いる。ピボット使うやつと使わないやつ。 目の前の問題をクロス集計というモデルに帰結させることができるかどうか。 そこが能力の分かれ目。
>>915 残す?ってなに?
=IF(OR(EXACT(LOWER(A1),A1),EXACT(UPPER(A1),A1),EXACT(PROPER(A1),A1)),A1,"")
こんな感じにすれば、判別はつくけど
919 :
名無しさん@そうだ選挙に行こう :2010/07/11(日) 21:05:45
>残す?ってなに? 削除しないって意味じゃね?
削除するって意味であれば、vbaだな、と想像はしているけれどさ・・・
ピボットも最近は不自由なく使えるようになったかよな。 ある意味馬鹿でも使える。 昔は使えないケースがたまにあったから、他のテクニックも勉強しないと駄目だった。
もう一度言いましょう。 Excelはピボット使うためのアプリケーションです。
馬鹿ほどピボットを覚えなきゃいけないのに、馬鹿は関数に逃げたがる。 配列数式やSUMPRODUCTを勧める馬鹿は死んでくれ。
関数はピボットテーブル使う時のデータ整形に使ってほしい。 関数で集計はあほ。 SUMIF系の関数は役立たず。
マクロボタンを押して、ピボットで集計 これ最強!
次スレの>2以降のテンプレにExcel2010に関するものを追加すべきと思いますが、 誰かまとめてもらえませんか? Excel2007と共通する部分も多いとは思いますが、詳しい方よろしく
929 :
複乳 :2010/07/12(月) 10:40:32
>>Excel2010に関するものを追加すべきと思いますが、 何で?
931 :
複乳 :2010/07/12(月) 11:48:18
何でも理由なく変えたがるアホっているんだけど多分それ
質問です RANK関数をやりたいんですが a 1 4 2 6 3 2 4 #N/A 5 #N/A となっていて #N/Aがあるとランク関数が出来ません。 どうしても1〜5の中に#N/Aが出てきてしまうので ランク関数が出来ないのですがどうすればいいでしょうか?
933 :
932 :2010/07/12(月) 14:24:00
自己解決
934 :
複乳 :2010/07/12(月) 14:31:54
>>932 やりかた1
NAエラーが出ないようにする。vlookupで例外出ていると仮定するけど、
A1=VLOOKUP(C1,D:E,2,0)
のようになってるとすると
A1=IF(ISERROR(VLOOKUP(C1,D:E,2,0)),"",VLOOKUP(C1,D:E,2,0))
とIFとISERRORを使って条件分岐させる
やり方2
A列はそのままで
B1=IF(ISERROR(A1),"",A1)
とする。エラーだと空白ってことね
そして
C1=IF(B1="","",RANK(B1,B:B))
みたいな感じ。
935 :
932 :2010/07/12(月) 19:24:12
>>934 すいません。入れ違いだったですね。
お手数掛けました。
僕のも考えたんですけど
>>934 さんの方が合理的です。
やっぱり聞いて良かったです。ありがとうございました。
936 :
名無しさん@そうだ選挙にいこう :2010/07/12(月) 20:15:22
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 いいえ a列に顧客id、b列に顧客名が書かれたリストが 甲、乙の二つあります 甲と乙は別々のブックにあります 甲リストの中で、乙にも記載されている顧客の情報を 削除したいのですが どのようなやり方があるでしょうか
937 :
複乳 :2010/07/12(月) 20:45:22
>>936 甲が50行あるとする
乙を甲の下にコピーする
C1=COUNTIF(A:A,A1)
下にオートフィル
C列でオートフィルタ、1のみを抽出
A1:B50をコピーしてはりつけ。オートフィルタ解除で終わり
よく分からないor数が少ないなら
C1=COUNTIF(A:A,A1)
の後で1以外を削除でもいいかも
ひとつひとつの商品を個別にエクセルファイルとして作ったのですが、ひとつのファイルでシートとして分ける場合には どうしたらいいですか? 読み込みとかできませんか?
939 :
複乳 :2010/07/12(月) 21:23:13
>>938 ファイルの名前とシートの名前、シートの構成を教えてもらえればVBAかINDIRECTでなんとかできるとおもう
どうまとめたいか教えて
940 :
名無しさん@そうだ選挙にいこう :2010/07/13(火) 00:24:30
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel 2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 ピボットテーブル 重複データ 反映されない よろしくお願いします。 ある行にまったく同じ内容のデータが2行入っています。 そのデータをピボットテーブルにすると1行分しか入っていません。 内容が合算されているわけではなく、1行分の金額しか入ってこないのです。 なぜでしょうか。ググリましたが、今回だけは解決できそうにもありません。 よろしくお願いいたします。
>>940 2行目のデータが範囲外なんじゃねーの?
データソースの変更してみた?
それともどちらかが文字列の数字だったりとか。
>>941 返信ありがとうございます。まずデータは範囲内です。
このデータはアクセスから抽出したもので文字列の数字でないことは手動でも
確認済みです。実はこんな感じで全く同じデータが数か所あるんですが、
全部反映されていません。今、1つしかないデータをコピーして最終行に貼り付けて
範囲指定してみましたが、やっぱり反映されていないですね。なんか設定で
意図的に除外しているような感じのエラーです(泣
943 :
名無しさん@そうだ選挙にいこう :2010/07/13(火) 10:19:31
すいません。2007はiferrorがありますが2003はありません。 #N/Aの表示を消したいのですがどうすればいいでしょうか?お願いします!
944 :
複乳 :2010/07/13(火) 10:24:51
>>943 a1がエラーの場合
=if(iserror(a1),"",a1)
こんな感じで
>>944 ありがとうございます。2007で作ったので修正が大変ですw
試してみます!
>>942 どこかにアップすれば?
2chのどこかにアップローダーがあったぞ。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002(OfficeXP) ファイルを順次開いて、コピー&ペーストをしようとマクロを書いてます。 a1〜a5まで開くことを思いながら書いてみましたが、うまくきません。 "D:\data\"以降を変数a1〜a5で割り当てるには どう書けばいいですか? Sub コピペする() a1 = "test-1.xls" a2 = "test-2.xls" a3 = "test-3.xls" a4 = "test-4.xls" a5 = "test-4.xls" For i = 1 To 5 Workbooks.Open Filename:="D:\data\" & a & i Next End Sub
そういうときは配列つかうんだよ a(1)とか
949 :
複乳 :2010/07/13(火) 22:23:10
Sub コピペする() Dim a(5) As String For f = 0 To 4 a(f) = "test-" & f + 1 & ".xls" Next For i = 0 To 4 Workbooks.Open Filename:="D:\data\" & a(i) Next End Sub こーんあnかんじかねー
a(5)はどこ逝った?
951 :
複乳 :2010/07/13(火) 23:07:12
どっかいった
952 :
複乳 :2010/07/13(火) 23:08:04
知るかボケ
>>948 コンパイルエラー
SubまたはFunctionが定義されてませんになってしまいました。
Workbooks.Open Filename:="D:\data\" & a(i)
>>949 "test-1.xls"は例題なので、それぞれファイル名が違います。
変数a1〜a5で割り当てるのはだめなの?
954 :
複乳 :2010/07/13(火) 23:20:29
>>953 Workbooks.Open Filename:="D:\data\" & a & i
Workbooks.Open Filename:="D:\data\" & "a" & i
↓
Workbooks.Open Filename:="D:\data\a" & i
955 :
複乳 :2010/07/13(火) 23:22:29
a-dameda,tigau mousukosimatte
>>954 実行時エラー1004
D:\data\a1.xlsが見つかりませんと出ました。。。
957 :
複乳 :2010/07/13(火) 23:31:57
test
958 :
複乳 :2010/07/13(火) 23:33:17
>>947 ああ、今やっと意味がわかった
文字列("a1")を変数(a1)にしたいわけね、やめといたほうがいい
リフレクションって技術だな。多分。詳細はぐぐってくれ。俺は使ったこと無い。
多分別の方法を考えた方がいいと思う
それでもやりたいならプログラム板のVBAスレで聞くといいと思う
>>956 >>954 はすまん、失敗
>>947 こんな感じか?
Sub aaa()
Dim FN As Variant, WB As Variant
WB = Array("test-1.xls", "test-2.xls", "test-3.xls", "test-4.xls", "test-4.xls")
For Each FN In WB
Workbooks.Open Filename:="D:\data\" & FN
Next FN
End Sub
960 :
959 :2010/07/14(水) 00:32:40
>>947 もしくはこんな感じか?
Sub bbb()
Dim FN As Variant, WB As Variant
WB = Range("A1:A5").Value ' 予めセルA1〜A5にファイル名を入れとく
For Each FN In WB
Workbooks.Open Filename:="D:\data\" & FN
Next FN
End Sub
961 :
名無しさん@そうだ選挙にいこう :2010/07/14(水) 12:10:13
太郎 4 りんご 君子 3 みかん 信二 2 ばなな 淑子 5 ぶどう 直子 1 なし 名前の隣はランク関数で導き出した数字です。 これを 4 1 なし 3 2 ばなな 2 3 みかん 5 4 りんご 1 5 ぶどう とindex関数で 右側の数字を検査値として果物を導きます。 ところがある値が同じとなってランク関数が 4 1 なし 2 2 ばなな 2 3 ←エラー 5 4 りんご 1 こうなると 5 ぶどう となります。 エラーはある値により2つになることもあります。 これを防ぐのにはどんなアイデアがいいでしょうか?
ISERROR()でなんとかする
>>962 ありがとうございます
そのエラーの値になった果物をどうにか表示させるにはどうすればと思いました。
そこで悩んでおります。
>>963 何でも関数でやろうとするなよ。
コピーして並び替えればいいじゃねーか。
並び変えればRANK関数も必要ないと思うぞ。
B1=RANK(A1,$A$1:$A$5)+ROW()/1048577 C1=RANK(B1,$B$1:$B$5,1) など同じ値にならないようにする 直接求めてもOK
967 :
複乳 :2010/07/14(水) 14:23:55
>>961 row()/10000を組み合わせる
具体的には
4
2
2
5
1
にそれぞれrow()/10000を足せば
4.00001
2.00002
2.00003
5.00004
1.00005
になるので、この順位をindexではなくもう一度RANK関数で順位をつけると
4
2
3
5
1
になる。まぁ後はうまくやってくれ
>>966-967 ありがとうございます
アイデアなるほどと思いました。さっそくやってみます。
>>965 RANK関数が必要ないは意味不明だが、前2行は一番まともな回答だな。
まぁ2chだから低ラベルなのは仕方がないかw
自画自賛かよ
971 :
複乳 :2010/07/14(水) 17:20:01
まぁ という単語は本当に便利な馬鹿判定器
973 :
複乳 :2010/07/14(水) 18:01:31
まぁ、忘れてた
テンプレに
>>980 で次スレを立てること
って一文入れようと思うんだけどどうだろう
まぁ、悪くないと思うんだけどまぁ
馬鹿は自分の馬鹿さ加減が分らんからね。
複乳もかなりだが
>>972 もだなw
まぁそうだね。
>>959-960 両方ともうまくいきましたが、959で完成させました。
ありがとうございました。
解決したのに申し訳ないですが、WB はなぜ Variant でないと
だめなんでしょうか?
959はString、960はRangeのようにも思えるんですが、
前者はコンパイレラー、後者はエラー91になってしまいます。
ごめんなさい × コンパイレラー ○ コンパイルエラー
>>977 >>959 のArray関数はVariant型の配列を返すんだよ。だからVarinat型。
Array関数じゃなくSplit関数使って
WB = Split("test-1.xls test-2.xls test-3.xls test-4.xls test-4.xls")
とすればDim WB() As StringでもいいけどWBもVariant型が普通だな。
ちなみにSplitはExcel2000以降な。
Arrayより少し楽だぜ。
>>960 は2個以上のセルの値は2次元配列になり、配列をいきなり変数に入れるならVariant型の変数にしか入れなれない。
WBがRange型なら
Set WB = Range("A1:A5") ' 予めセルA1〜A5にファイル名を入れとく
For Each FN In WB
Workbooks.Open Filename:="D:\data\" & FN.Value
Next FN
としないといかん。もちろん
>>960 の方が良い。
馬鹿を侮っちゃいかん microsoft公認もいるんだから
981 :
名無しさん@そうだ選挙にいこう :2010/07/14(水) 23:14:09
すいません質問です。 EXCEL2003でコンボボックスにマクロを登録しておいて、コンボボックスに入力すると マクロが実行されるようにしてありますが、この実行されるマクロ側で起動元のコンボボックス名を取得する 方法はないでしょうか?
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 条件付き書式 条件付き書式でセルに色をつけたいです。 セルは、次の3種に分けられます@空白(数式が入っている)A0以上 ex1,2 B 0以下 ex−1、-2 このセルに、Aの0以上の時、セルに赤色をつけようと思っています。 条件の設定は、条件1 セルの値が 次の値以上 0 → 書式で赤色を選択しました。 しかし、@の数式が入っているセルも、条件に引っかかるようで、セルが赤色になります。 この解決方法をおしえてください。 数式は C2=IF(A2=B2,"",B2) を入れ YESの時は セルを空白に NOの時は B2を値を入れています このB2の値が Aの0以上時のみ セルを赤くしたいです。 C3、C4・・・とつづきます。 なにか一つ式がたりないのか、工夫がたりないと思いますが、ご教授ください しかし、
>>981 フォームなら MsgBox Application.Caller かな
984 :
複乳 :2010/07/14(水) 23:42:26
>>980 .
スレ立て よろしくお願いします
>>982 1 数式が =(c2="")
2 値が 以上0
3 値が 以下0
>>984 ありがとうございます
条件3つ入れて解決しました。ありがとうございます。
しかし、自分で0以上と0以下と書いておいて0の取り扱いをかんがえてしまいました。
私がスレたてます
986 :
● :2010/07/14(水) 23:55:12
987 :
名無しさん@そうだ選挙にいこう :2010/07/15(木) 00:02:52
>>983 できました。
感謝感謝。
ありがとうございました。
今までExcel2002を使っていてCtrl+A一度でシート全体を選択するのに慣れてしまっているのですが 会社のExcelが2003になってしまいCtrl+Aを二度やらないとシート全体が選択できなくなってしまいました Ctrl+A一度で全体が選択できるようにはできませんか? A1セルの左上のとこクリックするしかないんでしょうか・・・
マクロ登録すれば?
>>839 お礼が遅くなりました、ありがとうございます!
無事に動作し、膨大なデータが1ファイルにまとまりました
60MB分が2MB程度へ…手動だったらゾッとしますorz
991 :
複乳 :2010/07/15(木) 13:16:38
ume
992 :
複乳 :2010/07/15(木) 13:20:07
ume
993 :
複乳 :2010/07/15(木) 13:26:47
ume
994 :
複乳 :2010/07/15(木) 13:40:56
une
995 :
複乳 :2010/07/15(木) 14:09:11
une
996 :
複乳 :2010/07/15(木) 14:14:20
ume
997 :
複乳 :2010/07/15(木) 14:50:51
mi
998 :
複乳 :2010/07/15(木) 14:53:49
rr
MS excel 2007は黒歴史
1000 get!!!!!!!!!!!!!!!!!!!!!!
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。