Skip to main content

Currency conversion in Excel

I have an Excel workbook which calculates money amounts in multiple currencies, and I thought that it would be very nice to make it automatically get the newest exchange rates over the Internet.

I have always been using Google as my favorite currency conversion tool. You can try that yourself – for example, if you insert „100 GBP in USD“, it will show you the value of $100 in pounds sterling.

And so I was happy to learn that the XMLHTTP ActiveX control, which is very popular among web developers, can be accessed from Excel’s VBA macros too. That control is basically used to retrieve data from a HTTP server.

So it actually proved very simple to code an Excel macro that would connect to Google, get currency exchange rate data, parse it and put it in a cell.

Here’s the function that does the actual job:

Function GetCurrencyRate(Currency_1 As String, Currency_2 As String)
    Dim XMLhttp: Set XMLhttp = CreateObject("microsoft.xmlhttp")
    url$ = "http://www.google.com/search?q=1+" + Currency_1 + "+in+" + Currency_2

    XMLhttp.Open "GET", url$, False
    XMLhttp.send ""

    Result$ = XMLhttp.responsetext

    CBegin% = InStr(Result$, "<font size=+1><b>") + 17
    Result$ = Mid$(Result$, CBegin%)

    CBegin% = InStr(Result$, " = ") + 3
    Result$ = Mid$(Result$, CBegin%)

    GetCurrencyRate = Val(Result$)
End Function

As long as Google keeps the same page design, this function will work perfectly. Now any macro can call the currency exchange rate retrieval function and use the results. Here is the solution I chose for my case – an Auto_Open macro, which would automatically fire up when the workbook is opened, get the US Dollar / Euro exchange rate and put it in the F9 cell on Sheet 1:

Sub Auto_Open()
    R = GetCurrencyRate("USD", "EUR")
    Sheets("Sheet1").Range("F9").Formula = Str$(R)
End Sub

WordPress Cyrillic Permalinks transliteration plugin

Note: I first published this plugin 11 years ago. I still use, update and support it.

If you have been using WordPress for a while, you are probably familiar with its great and flexible URL rewrite functions which let your posts use URLs that are friendly both to users and search engines. For example, I have configured my blog so that this entry can be accessed at https://petko.bossakov.eu/wordpress-cyrillic-slugs-plugin.

Unfortunately, this feature doesn’t work so smoothly with post titles in Cyrillic. They may confuse the code which generates the „Slugs“ included in the friendly URL, resulting in a bunch of meaningless characters, or – even worse – broken URLs.

I have coded a small WordPress plugin to take care of that. It automatically converts your Cyrillic post titles in phonetically equivalent Latin slugs.

Download here:
Cyrillic Permalinks 2.0.0

screenshot-1

Гъзарията, безсънните нощи и английския език

Снощи стоях до някъде 3:00, инсталирайки тонове софтуер. Какъв ще да е този софтуер, ще попитате?

Хрумна ми безумната идея да контролирам компютъра си с гласови команди. В главата ми изплуваха сцени как в просъница измърморвам „лека нощ, компютър“ и машината ме разбира и се изключва. Или как водя някоя мацка вкъщи и казвам тържествено „компютър, пусни малко Dire Straits“ (в „Сбогом и благодаря за рибата“ е описан благотворният ефект на Dire Straits върху половия живот).

Тъй като технологията, позволяваща такива благинки, се мотае наоколо от доста години, реших да потърся практическо приложение. На сайта на Microsoft е свободно достъпна тяхната система за синтез и разпознаване на говор, която позволява на всякакви съвместими с нея програми да получават информация директно от устата на човека зад компютъра.

Тайната ми надежда за поддръжка на други езици, освен английския, бързо се изпари, но пък сравнително бързо успях да науча системата да се оправя с акцента ми. И дойде време за втората стъпка…

Girder е програма, която позволява пълен контрол над компютъра чрез всякакви входни устройства – създадена е предимно с цел поддръжка на дистанционни и от доста време я ползвам заедно с дистанционното за TV тунера. Открих, че има и плъгин за интерфейс между Girder и гласовата система на Microsoft.

Самият плъгин явно не е предназначен за простосмъртни, тъй като за да дефинираш гласовите команди, с които да управляваш компютъра, трябва да пишеш XML файлове и да бърникаш един куп настройки. Накрая го преборих и дефинирах няколко команди за контрол на Winamp – Play, Stop, Pause, Next и други подобни.

С удоволствие установих, че всичко работи точно както трябва, но проблемът с едносричните думи е, че лесно се бъркат. Случи се нещо да падне на земята – компютърът чу „Стоп“. Освен това изпълняваше команди от музиката, която звучеше от тонколоните. Казах си „Ясно, трябват по-дълги фрази, за да не може да се объркат“.

Добавих на всички команди по едно „please“ отзад – редно е да сме учтиви все пак. В следващите 30 минути ги тествах и такова молене падна, че направо ми втръсна.

Накрая, предвид факта, че цялата тая пущина работи само в тиха стая, ако си в радиус 1 метър от микрофона – което лишава цялата работа от смисъл – ми писна и изтрих всичко, което бях инсталирал.

Въпреки всичко, гласовото командване е нещо, което би могло да бъде много удобно и полезно, прецизността на технологиите непрекъснато се развива и цялата тази работа определено има бъдеще.

Happy speaking!