金曜日, 1月 31, 2025

Excel VBA 38 
Excelで選択したセルをランダムカラーで塗る

 
何の意味も無い処理ですが・・・
Excelで選択したセルをランダムカラーで塗ってみます。

Sub FillCellsWithRandomColors()
Dim rng As Range
Dim cell As Range
Dim randomColor As Long

' 選択範囲を取得
On Error Resume Next
Set rng = Selection
On Error GoTo 0

' 選択範囲がない場合は終了
If rng Is Nothing Then
MsgBox "セル範囲を選択してください。", vbExclamation
Exit Sub
End If

' 範囲内の各セルをランダムな色で塗る
Application.ScreenUpdating = False
For Each cell In rng
' ランダムなRGB値の生成
randomColor = RGB(Int((256) * Rnd), Int((256) * _
            Rnd), Int((256) * Rnd))
    ' セルの塗りつぶし
cell.Interior.Color = randomColor
Next cell
' 画面の更新を一時停止し、処理速度を向上
Application.ScreenUpdating = True

MsgBox "選択したセルをランダムな色で塗りつぶしました。", _
        vbInformation
End Sub


処理したいエリアを選択して実行すれば・・・

こんな感じになります。具体的な用途は謎ですが・・・。

TCDW8298
最近は野菜が高騰していて悲しいです

Baby Alien 059
ぎょ魚ギョ〜(^o^)
刺身など、生の魚は苦手ですが、焼いたり煮たりの魚料理は大好きです。どから、どちらかというと魚料理が多いですね。あと根菜が好きです。ちなみに、最近は野菜が高騰していて悲しいです。

木曜日, 1月 30, 2025

modoローポリモデリング 52 
レイアウトが壊れたら環境設定のリセットで乗り切ります

昨年のmodo開発終了で、modoのTipsは取りやめていましたがユーザーはまだマシン環境があるかぎり使い続けられるので、ゆったりと再開することにしました。

というコトで、パレットなどのレイアウトが無意識に触ってしまったショートカットなどで崩れてしまった場合は,[システム]>[設定をリセット]で初期設定の戻すことが出来ます。ただし、本当に全ての設定がリセットされることを理解して対処しましょう。

Windows版の場合・・・

macOS版の場合・・・

TCDW8297
何故か私が買うと・・・もれなく外れが届く

何故か相性の悪いメーカーってありますね。メーカーの製品は優れているのに、何故か私が買うと・・・もれなく外れが届くのです。何でなのだろう?

水曜日, 1月 29, 2025

Let's start JavaScript 54 
HTML上で図形の面積を計算

HTML上で正円、長方形、三角形の面積を計算してみます。

<!-- index.html -->
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
  <meta name="viewport"
        content="width=device-width, initial-scale=1.0">
<title>図形の面積を計算</title>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
margin: 20px;
color: #000;
background-color: #f5f5f5;
}
.container {
margin: 20px auto;
max-width: 300px;
text-align: left;
}
label {
display: block;
margin: 10px 0 5px;
}
input[type="number"] {
width: 100%;
padding: 5px;
margin-bottom: 15px;
font-size: 1rem;
}
button {
display: block;
width: 100%;
padding: 10px;
font-size: 1rem;
background-color: #3498db;
color: #fff;
border: none;
border-radius: 5px;
cursor: pointer;
}
button:hover {
background-color: #2980b9;
}
.result {
margin-top: 20px;
font-size: 1.2rem;
color: #2c3e50;
text-align: center;
}
</style>
</head>
<body>
<h2>図形の面積を計算</h2>
<div class="container">
<label for="shape">図形を選択:</label>
<select id="shape" onchange="updateInputs()">
<option value="circle">正 円</option>
<option value="rectangle">長方形</option>
<option value="triangle">三角形</option>
</select>

<div id="inputs">
<!-- 入力フィールドがここに動的に生成されます -->
</div>

<button onclick="calculateArea()">面積を計算</button>

<div class="result" id="result"></div>
</div>

<script>
function updateInputs() {
const shape = document.getElementById("shape").value;
const inputs = document.getElementById("inputs");

// 入力フィールドをリセット
inputs.innerHTML = "";

// 正円に応じた入力フィールドを生成
if (shape === "circle") {
inputs.innerHTML = `
<label for="radius">半径 (r):</label>
<input type="number" id="radius"
                placeholder="半径を入力" min="0" required>
`;
// 長方形に応じた入力フィールドを生成
} else if (shape === "rectangle") {
inputs.innerHTML = `
<label for="width">幅 (w):</label>
<input type="number" id="width"
                placeholder="幅を入力" min="0" required>
<label for="height">高さ (h):</label>
<input type="number" id="height"
                placeholder="高さを入力" min="0" required>
`;
// 三角形に応じた入力フィールドを生成
} else if (shape === "triangle") {
inputs.innerHTML = `
<label for="base">底辺 (b):</label>
<input type="number" id="base"
                placeholder="底辺を入力" min="0" required>
<label for="height">高さ (h):</label>
<input type="number" id="height"
                placeholder="高さを入力" min="0" required>
`;
}
}

function calculateArea() {
const shape = document.getElementById("shape").value;
let area = 0;

//正円の処理(半径×半径×3.14)
if (shape === "circle") {
const radius = document.getElementById("radius").value;
if (radius) {
area = Math.PI * Math.pow(radius, 2);
}

//長方形の処理(高さ×幅)
} else if (shape === "rectangle") {
const width = document.getElementById("width").value;
const height = document.getElementById("height").value;
if (width && height) {
area = width * height;
}

//三角形の処理(底辺×高さ÷2)
} else if (shape === "triangle") {
const base = document.getElementById("base").value;
const height = document.getElementById("height").value;
if (base && height) {
area = (base * height) / 2;
}
}

//結果表示
const result = document.getElementById("result");
if (area > 0) {
result.textContent = `面積: ${area.toFixed(2)} 平方単位`;
} else {
result.textContent = "正しい値を入力してください。";
}
}

// 初期状態で円の入力フィールドを表示
window.onload = updateInputs;
</script>
</body>
</html>
<!-- index.html -->

実行直後の画面です。

半径を入力して[面積を計算]で正円の面積が出ます。

[長方形]を選択して幅と高さを入力し[面積を計算]で長方形の面積が出ます。

[三角形]を選択して底辺と高さを入力し[面積を計算]で三角形の面積が出ます。

TCDW8296
バトルになるのは避けたいですからね

私はあまり登場しない某SNSで、とあるツールが使えないという書き込みが知人から上がり、賛同のコメントを書き込もうとしたら、電話が入って作業を中断していたら、「アレはとても良いツールだ〜!」というコメントが入っていたので、私はコメントを控えました。バトルになるのは避けたいですからね。

火曜日, 1月 28, 2025

JavaScriptでAI遊び 33 
四角形でスパイラル配置作成(RGB版)


四角形でスパイラル配置を作成してみました。(RGB版)

// Illustrator RGBモードで四角形スパイラルを描画するスクリプト
(function() {
if (app.documents.length === 0) {
alert("ドキュメントを開いてください。");
return;
}

var doc = app.activeDocument;

// RGBカラーモードを確認
if (doc.documentColorSpace !== DocumentColorSpace.RGB) {
alert("ドキュメントをRGBモードに設定してください。");
return;
}

// ドキュメントのサイズを取得
var artboard = doc.artboards[0];
var artboardRect = artboard.artboardRect;
var centerX = (artboardRect[2] + artboardRect[0]) / 2;
var centerY = (artboardRect[3] + artboardRect[1]) / 2;

// スパイラルの設定
var numSquares = 50; // 四角形の数
var initialSize = 5; // 最初の四角形のサイズ
var sizeIncrement = 2; // サイズの増加量
var angleIncrement = 15; // 回転角度の増加量(度)
var distanceIncrement = 5; // 距離の増加量

for (var i = 0; i < numSquares; i++) {
var size = initialSize + i * sizeIncrement;
var angle = i * angleIncrement;
var distance = i * distanceIncrement;

// 角度をラジアンに変換し四角形の中心座標を計算
var radian = (angle * Math.PI) / 180;
var x = centerX + Math.cos(radian) * distance;
var y = centerY + Math.sin(radian) * distance;

// 四角形を作成
var rect = doc.pathItems.rectangle(y, x, size, size);

// ランダムなRGB色を設定
var red = Math.random() * 255;
var green = Math.random() * 255;
var blue = Math.random() * 255;

rect.fillColor = new RGBColor();
rect.fillColor.red = red;
rect.fillColor.green = green;
rect.fillColor.blue = blue;

rect.stroked = false;

// 回転
rect.rotate(angle);
}

alert("スパイラルの描画が完了しました!");
})();

実行直後の結果です。
サイズなどは指定できないのですが、その辺りは今後の課題ですね。

TCDW8295
PDFを閲覧するだけならChrome等のブラウザーがベスト

それにしてもAcrobatって便利だけど、重くて不安定・・・PDFを閲覧するだけならChrome等のブラウザーを使った方が精神衛生上ベストですね。

月曜日, 1月 27, 2025

Excel VBA 37 
Excelで選択したセルが塗り潰しなら太字

Excelで選択したセルのなかで、セルが塗り潰されているばあい、そのセルの文字を太字にします。

Sub MakeBoldForColoredCells()
Dim rng As Range
Dim cell As Range
' 選択範囲を取得
On Error Resume Next
Set rng = Selection
On Error GoTo 0
' 選択範囲がない場合は終了
If rng Is Nothing Then
MsgBox "選択範囲を指定してください。", vbExclamation
Exit Sub
End If
' 範囲内の各セルを処理
' Application.ScreenUpdating = Falseで
' 画面更新を停止し、処理を高速化
Application.ScreenUpdating = False
For Each cell In rng
' セルが塗りつぶしされており、色が設定されている場合、
' cell.Interior.Color を使用して、セルの塗りつぶし色を判定。
' 塗りつぶしが「透明(色なし)」または xlNone の場合はスキップ。
' 16777215 は標準の白色(RGB値: 255, 255, 255)を指す。
' 背景が白色の場合も無視するよう条件を追加。
' 塗りつぶしが色付きの場合のみ、cell.Font.Bold = True を設定
If cell.Interior.Color <> _
16777215 And cell.Interior.Color <> xlNone Then
cell.Font.Bold = True ' 文字をボールドに変更
End If
Next cell
Application.ScreenUpdating = True
MsgBox "色付きのセルの文字をボールドに変更しました。", _
vbInformation
End Sub

白も塗り潰しになってしまうことに気がつかず苦労しました。セルを選択し・・・

実行した結果です。
元に戻すときは、以下で対処してください。

Sub MakeTextNormal()
Dim rng As Range
Dim cell As Range
' 選択範囲を取得
On Error Resume Next
Set rng = Selection
On Error GoTo 0
' 選択範囲がない場合は終了
If rng Is Nothing Then
MsgBox "選択範囲を指定してください。", vbExclamation
Exit Sub
End If
' 範囲内の各セルを処理
Application.ScreenUpdating = False
For Each cell In rng
If Not IsEmpty(cell) Then
cell.Font.Bold = False ' ボールドをオフ
cell.Font.Italic = False ' イタリックをオフ
cell.Font.Underline = xlUnderlineStyleNone ' 下線をオフ
End If
Next cell
Application.ScreenUpdating = True
MsgBox "選択範囲の文字をノーマルに変更しました。", vbInformation
End Sub

TCDW8294
IKEAで気になったら速攻で撮影ですね

Baby Alien 058
こんな枕が欲しいかも(^o^)
先日IKEAへ行ったとき、色々名部屋のコーナーにさりげなく置いてあったオブジェが欲しくて、多分オモチャ売り場?と思い込んだのが大失敗。各局見つけられず断念。ネットで買うと送料が・・・(>_<)。IKEAで気になったら速攻で撮影ですね。 

日曜日, 1月 26, 2025

Blender Study Notes 48 
慣れれば簡単なカメラ設定とレンダリング処理

Blenderのカメラ設定は食わず嫌いでした。と言うのとで整理してみました。

ライティングなどを設定したら、メインオブジェクトを選択し、Shift Aで表示されるメニューから[カメラ]を選びます。 

するとオブジェクトに食い込んだような位置にカメラが設定されるので・・・

取りあえず前面に移動させます。

ココでカメラビューに切り替えると、だいたい上の様に歪んだ状態になります。

ここでモデリングモードに戻り、カメラを選択してレンズの[シフトX][シフトY]を調整して・・・

カメラの設定を調整します。

真上から野画面で大まかに調整するとイイです。

後はフォーマットでレンダリングのピクセル数を設定し・・・

レンダリングするだけです。

Blender 4.3.1 macOS

TCDW8293
最近のメールには本当に神経質になります

某ソフトメーカーから「アドビアカウントの有効期限が間もなく切れます」というメールが届いて、「有効期限がオカシイ?何故?」と疑問が浮かぶと同時に「詐欺メール?」の可能性もあるので手動でメーカーに指定されているメールアドレスでログインしたら・・・授業で解説用に設定した無料版のログインアドレスでした。すっかり忘れていました。しかし、最近のメールには本当に神経質になりますね。

 

 

土曜日, 1月 25, 2025

反ってしまった木材の修正方法

反ってしまった木材の修正方法は・・・


反った部分に水を含ませ・・・


鉄板などで挟み、オモリを乗せて数日放置すれば元に戻ります。 私は100均で入手したステンレストレーを使いました。ちなみに、上手くいかなかった場合で、木材がそれほど大きくなく、バケツなどに収まるサイズなら、全体を水に1日程度付けてから処理した方が賢明かも・・・。

TCDW8292
最近の車は「電気仕掛けの塊」ですからね

バッテリーが上がって自宅にJAFを呼んでしまいました。「何故バッテリーが?」と思ったのですが・・・ドライブレコーダーは停止中も反応していて、バッテリーを消費していたわけです。車を横切るモノは全て録画するので、地理も積もればです(>_<)。時々は些細な距離を走行してもバッテリーチャージにはならないので、結果としてバッテリー切れになったようです。最近の車は「電気仕掛けの塊」ですからね。時々はチョット長く運転しないと・・・。

金曜日, 1月 24, 2025

Illustratorで疑似円へのブラシ設定は要注意

Illustratorで疑似円へのブラシ設定は要注意です。

例えば、正方形のコーナーを最大限ラウンド設定にすれば正円になりますが・・・

アートブラシを設定すると上の様になってし舞います。
左:正方形を正円に変更した形状にブラシ設定
右:正円にブラシ設定

ちなみに設定したアート部ラッシは上の様な構造です。

TCDW8291
大昔、社会科見学で訪れた場所の位置を初めて理解でき

先日、九段下から日比谷まで皇居の周りを半周する散歩をしました。半蔵門では警察官が沢山いて驚いたり、大昔、社会科見学で訪れた場所の位置を初めて理解できて、チョット面白かったです。

木曜日, 1月 23, 2025

JavaScriptでAI遊び 32 
四角形でスパイラル配置作成(CMYK版)


四角形でスパイラル配置を作成してみました。(CMYK版)

// CMYKモードでスパイラルを描くIllustratorスクリプト

// アクティブなドキュメントを取得
var doc = app.activeDocument;

// ドキュメントのサイズを取得
var artboard = doc.artboards[0];
var artboardRect = artboard.artboardRect;
var centerX = (artboardRect[2] + artboardRect[0]) / 2;
var centerY = (artboardRect[3] + artboardRect[1]) / 2;

// スパイラルの設定
var numRectangles = 50; // 四角形の数
var size = 5; // 初期サイズ
var sizeIncrement = 2; // サイズの増加量
var angleIncrement = 15; // 回転角度(度数法)
var distanceIncrement = 5; // 四角形の間隔

// 角度をラジアンに変換
var angleInRadians = function(angle) {
return angle * (Math.PI / 180);
};

// 四角形を描画
for (var i = 0; i < numRectangles; i++) {
// 四角形の位置を計算
var angle = i * angleIncrement;
var distance = i * distanceIncrement;
var x = centerX + Math.cos(angleInRadians(angle)) * distance;
var y = centerY + Math.sin(angleInRadians(angle)) * distance;

// 四角形を作成
var rect = doc.pathItems.rectangle(y, x, size, size);

// ランダムなCMYKカラーを設定
rect.filled = true;
rect.fillColor = randomCMYKColor();

// 線をオフにする
rect.stroked = false;

// サイズを増加
size += sizeIncrement;
}

// ランダムなCMYKカラーを生成する関数
function randomCMYKColor() {
var cmykColor = new CMYKColor();
cmykColor.cyan = Math.random() * 100;
cmykColor.magenta = Math.random() * 100;
cmykColor.yellow = Math.random() * 100;
cmykColor.black = Math.random() * 1;
return cmykColor;
}


実行直後の結果です。
サイズなどは指定できないのですが、その辺りは今後の課題ですね。

TCDW8290
気になって居るので今度イタズラで作ってみようかと

Baby Alien 057
トマトなのかイチゴなのか?(^o^)
イチゴはトマトと同じで野菜ですね。イチゴジャムはポピュラーですが、トマトジャムもあるんですよね〜。チョット気になって居るので今度イタズラで作ってみようかと・・・。

水曜日, 1月 22, 2025

Excel VBA 36 
Excelで選択色の補色を隣のセルに表示

Excelで選択色の補色を隣のセルに表示させます。

Sub ShowComplementaryColor()
Dim selectedCell As Range
Dim baseColor As Long
Dim r As Long, g As Long, b As Long
Dim compColor As Long
Dim ws As Worksheet
' 現在のシートを取得
Set ws = ActiveSheet
' 選択範囲の最初のセルを取得
Set selectedCell = Selection.Cells(1, 1)
' 現在の塗り色を取得
baseColor = selectedCell.Interior.color
' RGB値を分解
r = baseColor Mod 256
g = (baseColor ¥ 256) Mod 256
b = (baseColor ¥ 256 ¥ 256) Mod 256
' 補色を計算
compColor = RGB(255 - r, 255 - g, 255 - b)
' 選択されたセルの隣に補色を反映(右隣のセルに表示)
selectedCell.Offset(0, 1).Interior.color = compColor

End Sub

任意の色で塗り潰したセルを選択し[ShowComplementaryColor]を実行すると・・・

選択したセルの右隣のセルが補色で塗り潰されます。

いくらでも続けて処理可能です。